diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 707998c..0688166 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -26,13 +26,13 @@ June 2019. - add `(` - add `)` - `c:put` primitive is a hookable word -- `set:` is now `array:` +- `set:` is now `a:` - add `s:begins-with?` - add `s:ends-with?` - remove `d:words` - remove `d:words-with` -- add `array:eq?` -- add `array:-eq?` +- add `a:eq?` +- add `a:-eq?` ## I/O and Extensions diff --git a/RETRO-Book.md b/RETRO-Book.md index e1ab780..a425067 100644 --- a/RETRO-Book.md +++ b/RETRO-Book.md @@ -620,7 +620,7 @@ The common namespaces are: | Prefix | Contains | | ------- | ------------------------------------------------------ | -| array: | Words operating on simple arrays | +| a: | Words operating on simple arrays | | ASCII: | ASCII character constants for control characters | | buffer: | Words for operating on a simple linear LIFO buffer | | c: | Words for operating on ASCII character data | @@ -1111,7 +1111,7 @@ arrays. ## Namespace -The words operating on arrays are kept in an `array:` namespace. +The words operating on arrays are kept in an `a:` namespace. ## Creating Arrays @@ -1125,45 +1125,45 @@ The easiest way to create an array is to wrap the values in a ``` You can also make an array from a quotation which returns -values and the number of values to store in the array: +values and the number of values to store in the a: ``` -[ #1 #2 #3 #3 ] array:counted-results -[ #1 #2 #3 #3 ] array:make +[ #1 #2 #3 #3 ] a:counted-results +[ #1 #2 #3 #3 ] a:make ``` ## Accessing Elements -You can access a specific value with `array:nth` and `fetch` or +You can access a specific value with `a:nth` and `fetch` or `store`: ``` -{ #1 #2 #3 #4 } #3 array:nth fetch +{ #1 #2 #3 #4 } #3 a:nth fetch ``` ## Find The Length -Use `array:length` to find the size of the array. +Use `a:length` to find the size of the array. ``` -{ #1 #2 #3 #4 } array:length +{ #1 #2 #3 #4 } a:length ``` ## Duplicate -Use `array:dup` to make a copy of an array: +Use `a:dup` to make a copy of an a: ``` -{ #1 #2 #3 #4 } array:dup +{ #1 #2 #3 #4 } a:dup ``` ## Filtering -RETRO provides `array:filter` which extracts matching values +RETRO provides `a:filter` which extracts matching values from an array. This is used like: ``` -{ #1 #2 #3 #4 #5 #6 #7 #8 } [ n:even? ] array:filter +{ #1 #2 #3 #4 #5 #6 #7 #8 } [ n:even? ] a:filter ``` The quote will be passed each value in the array and should @@ -1172,35 +1172,35 @@ into a new array. ## Mapping -`array:map` applies a quotation to each item in an array and +`a:map` applies a quotation to each item in an array and constructs a new array from the returned values. Example: ``` -{ #1 #2 #3 } [ #10 * ] array:map +{ #1 #2 #3 } [ #10 * ] a:map ``` ## Reduce -`array:reduce` takes an array, a starting value, and a quote. It +`a:reduce` takes an array, a starting value, and a quote. It executes the quote once for each item in the array, passing the item and the value to the quote. The quote should consume both and return a new value. ``` -{ #1 #2 #3 } #0 [ + ] array:reduce +{ #1 #2 #3 } #0 [ + ] a:reduce ``` ## Search -RETRO provides `array:contains?` and `array:contains-string?` +RETRO provides `a:contains?` and `a:contains-string?` to search an array for a value (either a number or string) and return either TRUE or FALSE. ``` -#100 { #1 #2 #3 } array:contains? -'test { 'abc 'def 'test 'ghi } array:contains-string? +#100 { #1 #2 #3 } a:contains? +'test { 'abc 'def 'test 'ghi } a:contains-string? ``` # Working With a Buffer diff --git a/doc/Glossary-Concise.txt b/doc/Glossary-Concise.txt index 065021f..477e877 100644 --- a/doc/Glossary-Concise.txt +++ b/doc/Glossary-Concise.txt @@ -202,6 +202,51 @@ Begin a quotation. ] D: - A: - F: - End a quotation. +a:-eq? D: aa-f A: - F: - +Compare all values in the array. Return `FALSE` if all values are equal or `TRUE` otherwise. This assumes the array contains only numeric values. + +a:contains-string? D: sa-f A: - F: - +Return `TRUE` if the string value is in the array or`FALSE` otherwise. + +a:contains? D: na-f A: - F: - +Return `TRUE` if the value is in the array or `FALSE` otherwise. + +a:counted-results D: q-a A: - F: - +Run a quote and construct a new array from the returned values. The quote should return the values and the number of values to put into the array. + +a:dup D: a-b A: - F: - +Make a copy of an array. Return the address of the copy. + +a:eq? D: aa-f A: - F: - +Compare all values in the array. Return `TRUE` if all values are equal or `FALSE` otherwise. This assumes the array contains only numeric values. + +a:filter D: aq-b A: - F: - +For each item in the initial array, run the specified quote. If the quote returns `TRUE`, copy the item into a new array. If `FALSE`, discard it. Returns a pointer to the new array. + +a:for-each D: aq- A: - F: - +Execute the quote once for each item in the array. + +a:from-string D: s-a A: - F: - +Create a new array with the characters in the source string. + +a:length D: a-n A: - F: - +Return the length of a array. + +a:make D: q-a A: - F: - +Execute quote. Return a new array containing the values the quote leaves on the stack. This is identical to doing `a:counted-results a:reverse` + +a:map D: aq- A: - F: - +Execute quote once for each item in the array. Constructs a new array from the value returned by the quote. + +a:nth D: an-b A: - F: - +Return the actual address of the nth item in the array. + +a:reduce D: pnq-n A: - F: - +Takes an array, a starting value, and a quote. This will apply the quote to each item in the array; the quote should consume two values and return one. + +a:reverse D: a-b A: - F: - +Reverse the order of items in a array. This will return a new array. + again D: - A: - F: - Close an unconditional loop. Branches back to the prior `repeat`. @@ -211,51 +256,6 @@ Allocate the specified number of cells from the `Heap`. and D: nm-o A: - F: - Perform a bitwise AND operation between the two provided values. -array:-eq? D: aa-f A: - F: - -Compare all values in the array. Return `FALSE` if all values are equal or `TRUE` otherwise. This assumes the array contains only numeric values. - -array:contains-string? D: sa-f A: - F: - -Return `TRUE` if the string value is in the array or`FALSE` otherwise. - -array:contains? D: na-f A: - F: - -Return `TRUE` if the value is in the array or `FALSE` otherwise. - -array:counted-results D: q-a A: - F: - -Run a quote and construct a new array from the returned values. The quote should return the values and the number of values to put into the array. - -array:dup D: a-b A: - F: - -Make a copy of an array. Return the address of the copy. - -array:eq? D: aa-f A: - F: - -Compare all values in the array. Return `TRUE` if all values are equal or `FALSE` otherwise. This assumes the array contains only numeric values. - -array:filter D: aq-b A: - F: - -For each item in the initial array, run the specified quote. If the quote returns `TRUE`, copy the item into a new array. If `FALSE`, discard it. Returns a pointer to the new array. - -array:for-each D: aq- A: - F: - -Execute the quote once for each item in the array. - -array:from-string D: s-a A: - F: - -Create a new array with the characters in the source string. - -array:length D: a-n A: - F: - -Return the length of a array. - -array:make D: q-a A: - F: - -Execute quote. Return a new array containing the values the quote leaves on the stack. This is identical to doing `array:counted-results array:reverse` - -array:map D: aq- A: - F: - -Execute quote once for each item in the array. Constructs a new array from the value returned by the quote. - -array:nth D: an-b A: - F: - -Return the actual address of the nth item in the array. - -array:reduce D: pnq-n A: - F: - -Takes an array, a starting value, and a quote. This will apply the quote to each item in the array; the quote should consume two values and return one. - -array:reverse D: a-b A: - F: - -Reverse the order of items in a array. This will return a new array. - as{ D: -f A: - F: - Begin an assembly section. @@ -1379,7 +1379,7 @@ xor D: mn-o A: - F: - Perform a bitwise XOR operation. { D: - A: - F: - -Begin an array. This is intended to make creating arrays a bit cleaner than using a quotation and `array:counted-results`. +Begin an array. This is intended to make creating arrays a bit cleaner than using a quotation and `a:counted-results`. {{ D: - A: - F: - Begin a lexically scoped area. diff --git a/doc/Glossary-Names-and-Stack.txt b/doc/Glossary-Names-and-Stack.txt index d2e848e..7b2fc85 100644 --- a/doc/Glossary-Names-and-Stack.txt +++ b/doc/Glossary-Names-and-Stack.txt @@ -66,24 +66,24 @@ TempStrings D: -a A: - F: - Version D: -a A: - F: - [ D: - A: - F: - ] D: - A: - F: - +a:-eq? D: aa-f A: - F: - +a:contains-string? D: sa-f A: - F: - +a:contains? D: na-f A: - F: - +a:counted-results D: q-a A: - F: - +a:dup D: a-b A: - F: - +a:eq? D: aa-f A: - F: - +a:filter D: aq-b A: - F: - +a:for-each D: aq- A: - F: - +a:from-string D: s-a A: - F: - +a:length D: a-n A: - F: - +a:make D: q-a A: - F: - +a:map D: aq- A: - F: - +a:nth D: an-b A: - F: - +a:reduce D: pnq-n A: - F: - +a:reverse D: a-b A: - F: - again D: - A: - F: - allot D: n- A: - F: - and D: nm-o A: - F: - -array:-eq? D: aa-f A: - F: - -array:contains-string? D: sa-f A: - F: - -array:contains? D: na-f A: - F: - -array:counted-results D: q-a A: - F: - -array:dup D: a-b A: - F: - -array:eq? D: aa-f A: - F: - -array:filter D: aq-b A: - F: - -array:for-each D: aq- A: - F: - -array:from-string D: s-a A: - F: - -array:length D: a-n A: - F: - -array:make D: q-a A: - F: - -array:map D: aq- A: - F: - -array:nth D: an-b A: - F: - -array:reduce D: pnq-n A: - F: - -array:reverse D: a-b A: - F: - as{ D: -f A: - F: - banner D: - A: - F: - bi D: xqq-? A: - F: - diff --git a/doc/Glossary.html b/doc/Glossary.html index 9f9ced4..19e2517 100644 --- a/doc/Glossary.html +++ b/doc/Glossary.html @@ -569,6 +569,126 @@

End a quotation.

Class: class:macro | Namespace: global | Interface Layer: all


+

a:-eq?

+

Data: aa-f
+Addr: -
+Float: -

+
+

Compare all values in the array. Return `FALSE` if all values are equal or `TRUE` otherwise. This assumes the array contains only numeric values.

+

Class: class:word | Namespace: a | Interface Layer: all

+
+

a:contains-string?

+

Data: sa-f
+Addr: -
+Float: -

+
+

Return `TRUE` if the string value is in the array or`FALSE` otherwise.

+

Class: class:word | Namespace: a | Interface Layer: all

+
+

a:contains?

+

Data: na-f
+Addr: -
+Float: -

+
+

Return `TRUE` if the value is in the array or `FALSE` otherwise.

+

Class: class:word | Namespace: a | Interface Layer: all

+
+

a:counted-results

+

Data: q-a
+Addr: -
+Float: -

+
+

Run a quote and construct a new array from the returned values. The quote should return the values and the number of values to put into the array.

+

Class: class:word | Namespace: a | Interface Layer: all

+
+

a:dup

+

Data: a-b
+Addr: -
+Float: -

+
+

Make a copy of an array. Return the address of the copy.

+

Class: class:word | Namespace: a | Interface Layer: all

+
+

a:eq?

+

Data: aa-f
+Addr: -
+Float: -

+
+

Compare all values in the array. Return `TRUE` if all values are equal or `FALSE` otherwise. This assumes the array contains only numeric values.

+

Class: class:word | Namespace: a | Interface Layer: all

+
+

a:filter

+

Data: aq-b
+Addr: -
+Float: -

+
+

For each item in the initial array, run the specified quote. If the quote returns `TRUE`, copy the item into a new array. If `FALSE`, discard it. Returns a pointer to the new array.

+

Class: class:word | Namespace: a | Interface Layer: all

+
+

a:for-each

+

Data: aq-
+Addr: -
+Float: -

+
+

Execute the quote once for each item in the array.

+

Class: class:word | Namespace: a | Interface Layer: all

+
+

a:from-string

+

Data: s-a
+Addr: -
+Float: -

+
+

Create a new array with the characters in the source string.

+

Class: class:word | Namespace: a | Interface Layer: all

+
+

a:length

+

Data: a-n
+Addr: -
+Float: -

+
+

Return the length of a array.

+

Class: class:word | Namespace: a | Interface Layer: all

+
+

a:make

+

Data: q-a
+Addr: -
+Float: -

+
+

Execute quote. Return a new array containing the values the quote leaves on the stack. This is identical to doing `a:counted-results a:reverse`

+

Class: class:word | Namespace: a | Interface Layer: all

+
+

a:map

+

Data: aq-
+Addr: -
+Float: -

+
+

Execute quote once for each item in the array. Constructs a new array from the value returned by the quote.

+

Class: class:word | Namespace: a | Interface Layer: all

+
+

a:nth

+

Data: an-b
+Addr: -
+Float: -

+
+

Return the actual address of the nth item in the array.

+

Class: class:word | Namespace: a | Interface Layer: all

+
+

a:reduce

+

Data: pnq-n
+Addr: -
+Float: -

+
+

Takes an array, a starting value, and a quote. This will apply the quote to each item in the array; the quote should consume two values and return one.

+

Class: class:word | Namespace: a | Interface Layer: all

+
+

a:reverse

+

Data: a-b
+Addr: -
+Float: -

+
+

Reverse the order of items in a array. This will return a new array.

+

Class: class:word | Namespace: a | Interface Layer: all

+

again

Data: -
Addr: -
@@ -597,126 +717,6 @@

Perform a bitwise AND operation between the two provided values.

Class: class:primitive | Namespace: global | Interface Layer: all


-

array:-eq?

-

Data: aa-f
-Addr: -
-Float: -

-
-

Compare all values in the array. Return `FALSE` if all values are equal or `TRUE` otherwise. This assumes the array contains only numeric values.

-

Class: class:word | Namespace: array | Interface Layer: all

-
-

array:contains-string?

-

Data: sa-f
-Addr: -
-Float: -

-
-

Return `TRUE` if the string value is in the array or`FALSE` otherwise.

-

Class: class:word | Namespace: array | Interface Layer: all

-
-

array:contains?

-

Data: na-f
-Addr: -
-Float: -

-
-

Return `TRUE` if the value is in the array or `FALSE` otherwise.

-

Class: class:word | Namespace: array | Interface Layer: all

-
-

array:counted-results

-

Data: q-a
-Addr: -
-Float: -

-
-

Run a quote and construct a new array from the returned values. The quote should return the values and the number of values to put into the array.

-

Class: class:word | Namespace: array | Interface Layer: all

-
-

array:dup

-

Data: a-b
-Addr: -
-Float: -

-
-

Make a copy of an array. Return the address of the copy.

-

Class: class:word | Namespace: array | Interface Layer: all

-
-

array:eq?

-

Data: aa-f
-Addr: -
-Float: -

-
-

Compare all values in the array. Return `TRUE` if all values are equal or `FALSE` otherwise. This assumes the array contains only numeric values.

-

Class: class:word | Namespace: array | Interface Layer: all

-
-

array:filter

-

Data: aq-b
-Addr: -
-Float: -

-
-

For each item in the initial array, run the specified quote. If the quote returns `TRUE`, copy the item into a new array. If `FALSE`, discard it. Returns a pointer to the new array.

-

Class: class:word | Namespace: array | Interface Layer: all

-
-

array:for-each

-

Data: aq-
-Addr: -
-Float: -

-
-

Execute the quote once for each item in the array.

-

Class: class:word | Namespace: array | Interface Layer: all

-
-

array:from-string

-

Data: s-a
-Addr: -
-Float: -

-
-

Create a new array with the characters in the source string.

-

Class: class:word | Namespace: array | Interface Layer: all

-
-

array:length

-

Data: a-n
-Addr: -
-Float: -

-
-

Return the length of a array.

-

Class: class:word | Namespace: array | Interface Layer: all

-
-

array:make

-

Data: q-a
-Addr: -
-Float: -

-
-

Execute quote. Return a new array containing the values the quote leaves on the stack. This is identical to doing `array:counted-results array:reverse`

-

Class: class:word | Namespace: array | Interface Layer: all

-
-

array:map

-

Data: aq-
-Addr: -
-Float: -

-
-

Execute quote once for each item in the array. Constructs a new array from the value returned by the quote.

-

Class: class:word | Namespace: array | Interface Layer: all

-
-

array:nth

-

Data: an-b
-Addr: -
-Float: -

-
-

Return the actual address of the nth item in the array.

-

Class: class:word | Namespace: array | Interface Layer: all

-
-

array:reduce

-

Data: pnq-n
-Addr: -
-Float: -

-
-

Takes an array, a starting value, and a quote. This will apply the quote to each item in the array; the quote should consume two values and return one.

-

Class: class:word | Namespace: array | Interface Layer: all

-
-

array:reverse

-

Data: a-b
-Addr: -
-Float: -

-
-

Reverse the order of items in a array. This will return a new array.

-

Class: class:word | Namespace: array | Interface Layer: all

-

as{

Data: -f
Addr: -
@@ -4026,7 +4026,7 @@ Addr: -
Float: -

-

Begin an array. This is intended to make creating arrays a bit cleaner than using a quotation and `array:counted-results`.

+

Begin an array. This is intended to make creating arrays a bit cleaner than using a quotation and `a:counted-results`.

Class: class:word | Namespace: global | Interface Layer: all


{{

diff --git a/doc/Glossary.txt b/doc/Glossary.txt index 210cae2..7bb9666 100644 --- a/doc/Glossary.txt +++ b/doc/Glossary.txt @@ -779,6 +779,171 @@ End a quotation. Class: class:macro | Namespace: global | Interface Layer: all ------------------------------------------------------------------------ +a:-eq? + + Data: aa-f + Addr: - + Float: - + +Compare all values in the array. Return `FALSE` if all values are equal or `TRUE` otherwise. This assumes the array contains only numeric values. + +Class: class:word | Namespace: a | Interface Layer: all +------------------------------------------------------------------------ + +a:contains-string? + + Data: sa-f + Addr: - + Float: - + +Return `TRUE` if the string value is in the array or`FALSE` otherwise. + +Class: class:word | Namespace: a | Interface Layer: all +------------------------------------------------------------------------ + +a:contains? + + Data: na-f + Addr: - + Float: - + +Return `TRUE` if the value is in the array or `FALSE` otherwise. + +Class: class:word | Namespace: a | Interface Layer: all +------------------------------------------------------------------------ + +a:counted-results + + Data: q-a + Addr: - + Float: - + +Run a quote and construct a new array from the returned values. The quote should return the values and the number of values to put into the array. + +Class: class:word | Namespace: a | Interface Layer: all +------------------------------------------------------------------------ + +a:dup + + Data: a-b + Addr: - + Float: - + +Make a copy of an array. Return the address of the copy. + +Class: class:word | Namespace: a | Interface Layer: all +------------------------------------------------------------------------ + +a:eq? + + Data: aa-f + Addr: - + Float: - + +Compare all values in the array. Return `TRUE` if all values are equal or `FALSE` otherwise. This assumes the array contains only numeric values. + +Class: class:word | Namespace: a | Interface Layer: all +------------------------------------------------------------------------ + +a:filter + + Data: aq-b + Addr: - + Float: - + +For each item in the initial array, run the specified quote. If the quote returns `TRUE`, copy the item into a new array. If `FALSE`, discard it. Returns a pointer to the new array. + +Class: class:word | Namespace: a | Interface Layer: all +------------------------------------------------------------------------ + +a:for-each + + Data: aq- + Addr: - + Float: - + +Execute the quote once for each item in the array. + +Class: class:word | Namespace: a | Interface Layer: all +------------------------------------------------------------------------ + +a:from-string + + Data: s-a + Addr: - + Float: - + +Create a new array with the characters in the source string. + +Class: class:word | Namespace: a | Interface Layer: all +------------------------------------------------------------------------ + +a:length + + Data: a-n + Addr: - + Float: - + +Return the length of a array. + +Class: class:word | Namespace: a | Interface Layer: all +------------------------------------------------------------------------ + +a:make + + Data: q-a + Addr: - + Float: - + +Execute quote. Return a new array containing the values the quote leaves on the stack. This is identical to doing `a:counted-results a:reverse` + +Class: class:word | Namespace: a | Interface Layer: all +------------------------------------------------------------------------ + +a:map + + Data: aq- + Addr: - + Float: - + +Execute quote once for each item in the array. Constructs a new array from the value returned by the quote. + +Class: class:word | Namespace: a | Interface Layer: all +------------------------------------------------------------------------ + +a:nth + + Data: an-b + Addr: - + Float: - + +Return the actual address of the nth item in the array. + +Class: class:word | Namespace: a | Interface Layer: all +------------------------------------------------------------------------ + +a:reduce + + Data: pnq-n + Addr: - + Float: - + +Takes an array, a starting value, and a quote. This will apply the quote to each item in the array; the quote should consume two values and return one. + +Class: class:word | Namespace: a | Interface Layer: all +------------------------------------------------------------------------ + +a:reverse + + Data: a-b + Addr: - + Float: - + +Reverse the order of items in a array. This will return a new array. + +Class: class:word | Namespace: a | Interface Layer: all +------------------------------------------------------------------------ + again Data: - @@ -817,171 +982,6 @@ Perform a bitwise AND operation between the two provided values. Class: class:primitive | Namespace: global | Interface Layer: all ------------------------------------------------------------------------ -array:-eq? - - Data: aa-f - Addr: - - Float: - - -Compare all values in the array. Return `FALSE` if all values are equal or `TRUE` otherwise. This assumes the array contains only numeric values. - -Class: class:word | Namespace: array | Interface Layer: all ------------------------------------------------------------------------- - -array:contains-string? - - Data: sa-f - Addr: - - Float: - - -Return `TRUE` if the string value is in the array or`FALSE` otherwise. - -Class: class:word | Namespace: array | Interface Layer: all ------------------------------------------------------------------------- - -array:contains? - - Data: na-f - Addr: - - Float: - - -Return `TRUE` if the value is in the array or `FALSE` otherwise. - -Class: class:word | Namespace: array | Interface Layer: all ------------------------------------------------------------------------- - -array:counted-results - - Data: q-a - Addr: - - Float: - - -Run a quote and construct a new array from the returned values. The quote should return the values and the number of values to put into the array. - -Class: class:word | Namespace: array | Interface Layer: all ------------------------------------------------------------------------- - -array:dup - - Data: a-b - Addr: - - Float: - - -Make a copy of an array. Return the address of the copy. - -Class: class:word | Namespace: array | Interface Layer: all ------------------------------------------------------------------------- - -array:eq? - - Data: aa-f - Addr: - - Float: - - -Compare all values in the array. Return `TRUE` if all values are equal or `FALSE` otherwise. This assumes the array contains only numeric values. - -Class: class:word | Namespace: array | Interface Layer: all ------------------------------------------------------------------------- - -array:filter - - Data: aq-b - Addr: - - Float: - - -For each item in the initial array, run the specified quote. If the quote returns `TRUE`, copy the item into a new array. If `FALSE`, discard it. Returns a pointer to the new array. - -Class: class:word | Namespace: array | Interface Layer: all ------------------------------------------------------------------------- - -array:for-each - - Data: aq- - Addr: - - Float: - - -Execute the quote once for each item in the array. - -Class: class:word | Namespace: array | Interface Layer: all ------------------------------------------------------------------------- - -array:from-string - - Data: s-a - Addr: - - Float: - - -Create a new array with the characters in the source string. - -Class: class:word | Namespace: array | Interface Layer: all ------------------------------------------------------------------------- - -array:length - - Data: a-n - Addr: - - Float: - - -Return the length of a array. - -Class: class:word | Namespace: array | Interface Layer: all ------------------------------------------------------------------------- - -array:make - - Data: q-a - Addr: - - Float: - - -Execute quote. Return a new array containing the values the quote leaves on the stack. This is identical to doing `array:counted-results array:reverse` - -Class: class:word | Namespace: array | Interface Layer: all ------------------------------------------------------------------------- - -array:map - - Data: aq- - Addr: - - Float: - - -Execute quote once for each item in the array. Constructs a new array from the value returned by the quote. - -Class: class:word | Namespace: array | Interface Layer: all ------------------------------------------------------------------------- - -array:nth - - Data: an-b - Addr: - - Float: - - -Return the actual address of the nth item in the array. - -Class: class:word | Namespace: array | Interface Layer: all ------------------------------------------------------------------------- - -array:reduce - - Data: pnq-n - Addr: - - Float: - - -Takes an array, a starting value, and a quote. This will apply the quote to each item in the array; the quote should consume two values and return one. - -Class: class:word | Namespace: array | Interface Layer: all ------------------------------------------------------------------------- - -array:reverse - - Data: a-b - Addr: - - Float: - - -Reverse the order of items in a array. This will return a new array. - -Class: class:word | Namespace: array | Interface Layer: all ------------------------------------------------------------------------- - as{ Data: -f @@ -5464,7 +5464,7 @@ Class: class:primitive | Namespace: global | Interface Layer: all Addr: - Float: - -Begin an array. This is intended to make creating arrays a bit cleaner than using a quotation and `array:counted-results`. +Begin an array. This is intended to make creating arrays a bit cleaner than using a quotation and `a:counted-results`. Class: class:word | Namespace: global | Interface Layer: all ------------------------------------------------------------------------ diff --git a/doc/book/Programming-Techniques-Naming-Conventions b/doc/book/Programming-Techniques-Naming-Conventions index 7506bdd..949f026 100644 --- a/doc/book/Programming-Techniques-Naming-Conventions +++ b/doc/book/Programming-Techniques-Naming-Conventions @@ -55,7 +55,7 @@ The common namespaces are: | Prefix | Contains | | ------- | ------------------------------------------------------ | -| array: | Words operating on simple arrays | +| a: | Words operating on simple arrays | | ASCII: | ASCII character constants for control characters | | buffer: | Words for operating on a simple linear LIFO buffer | | c: | Words for operating on ASCII character data | diff --git a/doc/book/Programming-Techniques-Working-With-Arrays b/doc/book/Programming-Techniques-Working-With-Arrays index e3d0d0b..b5d6773 100644 --- a/doc/book/Programming-Techniques-Working-With-Arrays +++ b/doc/book/Programming-Techniques-Working-With-Arrays @@ -5,7 +5,7 @@ arrays. ## Namespace -The words operating on arrays are kept in an `array:` namespace. +The words operating on arrays are kept in an `a:` namespace. ## Creating Arrays @@ -19,45 +19,45 @@ The easiest way to create an array is to wrap the values in a ``` You can also make an array from a quotation which returns -values and the number of values to store in the array: +values and the number of values to store in the a: ``` -[ #1 #2 #3 #3 ] array:counted-results -[ #1 #2 #3 #3 ] array:make +[ #1 #2 #3 #3 ] a:counted-results +[ #1 #2 #3 #3 ] a:make ``` ## Accessing Elements -You can access a specific value with `array:nth` and `fetch` or +You can access a specific value with `a:nth` and `fetch` or `store`: ``` -{ #1 #2 #3 #4 } #3 array:nth fetch +{ #1 #2 #3 #4 } #3 a:nth fetch ``` ## Find The Length -Use `array:length` to find the size of the array. +Use `a:length` to find the size of the array. ``` -{ #1 #2 #3 #4 } array:length +{ #1 #2 #3 #4 } a:length ``` ## Duplicate -Use `array:dup` to make a copy of an array: +Use `a:dup` to make a copy of an a: ``` -{ #1 #2 #3 #4 } array:dup +{ #1 #2 #3 #4 } a:dup ``` ## Filtering -RETRO provides `array:filter` which extracts matching values +RETRO provides `a:filter` which extracts matching values from an array. This is used like: ``` -{ #1 #2 #3 #4 #5 #6 #7 #8 } [ n:even? ] array:filter +{ #1 #2 #3 #4 #5 #6 #7 #8 } [ n:even? ] a:filter ``` The quote will be passed each value in the array and should @@ -66,33 +66,33 @@ into a new array. ## Mapping -`array:map` applies a quotation to each item in an array and +`a:map` applies a quotation to each item in an array and constructs a new array from the returned values. Example: ``` -{ #1 #2 #3 } [ #10 * ] array:map +{ #1 #2 #3 } [ #10 * ] a:map ``` ## Reduce -`array:reduce` takes an array, a starting value, and a quote. It +`a:reduce` takes an array, a starting value, and a quote. It executes the quote once for each item in the array, passing the item and the value to the quote. The quote should consume both and return a new value. ``` -{ #1 #2 #3 } #0 [ + ] array:reduce +{ #1 #2 #3 } #0 [ + ] a:reduce ``` ## Search -RETRO provides `array:contains?` and `array:contains-string?` +RETRO provides `a:contains?` and `a:contains-string?` to search an array for a value (either a number or string) and return either TRUE or FALSE. ``` -#100 { #1 #2 #3 } array:contains? -'test { 'abc 'def 'test 'ghi } array:contains-string? +#100 { #1 #2 #3 } a:contains? +'test { 'abc 'def 'test 'ghi } a:contains-string? ``` diff --git a/example/Block-Editor.forth b/example/Block-Editor.forth index e82e32f..508bcb5 100755 --- a/example/Block-Editor.forth +++ b/example/Block-Editor.forth @@ -260,7 +260,7 @@ tokenization. :prepare &Tokens #4096 [ #0 over store n:inc ] times drop ; :generate &Tokens !Heap &Block #32 s:tokenize ; :item dup s:length n:zero? [ drop ] [ interpret ] choose ; - :process [ item ] array:for-each ; + :process [ item ] a:for-each ; ---reveal--- :editor:key<1> [ prepare &Heap [ generate ] v:preserve process ] with-tob ; diff --git a/example/CloseParen.forth b/example/CloseParen.forth index 8970526..661777c 100644 --- a/example/CloseParen.forth +++ b/example/CloseParen.forth @@ -6,30 +6,30 @@ I find `)` useful to punctuate code chunks. Here is an example: - :i@ (an-n) array:nth fetch ; + :i@ (an-n) a:nth fetch ; ~~~ {{ - :I@ (an-n) I array:nth fetch ; + :I@ (an-n) I a:nth fetch ; 'Index 'Value [ var ] bi@ :lt?-or-gt? hook ; :pre.min (a-an) (comparison <? <?-or-gt? set-hook ) - (begin_with #-1 !Index n:MAX !Value dup array:length ) ; + (begin_with #-1 !Index n:MAX !Value dup a:length ) ; :pre.max (a-an) (comparison >? <?-or-gt? set-hook ) - (begin_with #-1 !Index n:MIN !Value dup array:length ) ; + (begin_with #-1 !Index n:MIN !Value dup a:length ) ; :min-or-max (a-nn) [ dup I@ dup @Value lt?-or-gt? [ !Value I !Index ] [ drop ] choose ] times (a-nn drop @Index @Value ) ; ---reveal--- - :array:min (a-iv) pre.min min-or-max ; - :array:max (a-iv) pre.max min-or-max ; + :a:min (a-iv) pre.min min-or-max ; + :a:max (a-iv) pre.max min-or-max ; }} ~~~ ``` -{ #3 #2 #5 #7 #3 } array:min dump-stack nl reset -{ #3 #2 #5 #7 #3 } array:max dump-stack nl +{ #3 #2 #5 #7 #3 } a:min dump-stack nl reset +{ #3 #2 #5 #7 #3 } a:max dump-stack nl ``` diff --git a/example/DisplayNames.forth b/example/DisplayNames.forth index e5845fc..cdbb6c4 100644 --- a/example/DisplayNames.forth +++ b/example/DisplayNames.forth @@ -70,7 +70,7 @@ any used space is recovered. &Heap [ identify-classes [ [ d:name s:put nl ] [ d:xt fetch d:words-in-class ] bi - nl nl ] array:for-each ] v:preserve ; + nl nl ] a:for-each ] v:preserve ; }} ~~~ diff --git a/example/FloatVar.forth b/example/FloatVar.forth index 45520f6..cb39f5c 100644 --- a/example/FloatVar.forth +++ b/example/FloatVar.forth @@ -159,7 +159,7 @@ Two different ways are implemented: Since Retro's cells are 32-bit, it is more convenient to handle floating point numbers encoded into single cells than into pairs of cells. -For instance, consider using the `array:` words for vectors. +For instance, consider using the `a:` words for vectors. Hence in many cases the words found by doing 'e: d:words-with diff --git a/example/Matrix.forth b/example/Matrix.forth index 2f49816..1f4719c 100644 --- a/example/Matrix.forth +++ b/example/Matrix.forth @@ -31,5 +31,5 @@ Test matrix, should be "contained!" thrice. ``` #30 #20 #10 #3 #1 "tester matrix { tester #2 + #3 [ fetch-next swap ] times drop } -[ { #10 #20 #30 } array:contains? [ 'contained! s:put sp nl ] if ] array:for-each +[ { #10 #20 #30 } a:contains? [ 'contained! s:put sp nl ] if ] a:for-each ``` diff --git a/example/Primes.forth b/example/Primes.forth index 3151603..c3742f4 100644 --- a/example/Primes.forth +++ b/example/Primes.forth @@ -6,7 +6,7 @@ This is a quick and dirty way to find prime numbers in a set. :extract (s-s) [ @NextPrime dup-pair eq? [ drop-pair TRUE ] - [ mod n:-zero? ] choose ] array:filter ; + [ mod n:-zero? ] choose ] a:filter ; ---reveal--- :get-primes (s-s) #2 !NextPrime @@ -20,5 +20,5 @@ And a test: :create-set (-a) here #3000 , #2 #3002 [ dup , n:inc ] times drop ; -create-set get-primes [ n:put sp ] array:for-each +create-set get-primes [ n:put sp ] a:for-each ~~~ diff --git a/example/Sandboxed-Dictionary.forth b/example/Sandboxed-Dictionary.forth index bfcfc79..ff2522e 100644 --- a/example/Sandboxed-Dictionary.forth +++ b/example/Sandboxed-Dictionary.forth @@ -21,7 +21,7 @@ dictionary. here [ @D , , , s, ] dip !D ; ---reveal--- :make-dict (a-a) - #0 !D [ unpack add-header ] array:for-each @D ; + #0 !D [ unpack add-header ] a:for-each @D ; }} ~~~ diff --git a/example/TokiPona-Translate.forth b/example/TokiPona-Translate.forth index 98f0905..d0ce17f 100755 --- a/example/TokiPona-Translate.forth +++ b/example/TokiPona-Translate.forth @@ -158,6 +158,6 @@ A couple of resources: :clean [ [ c:letter? ] [ c:whitespace? ] bi or ] s:filter ; :original dup s:put nl tab ; :tokens ASCII:SPACE s:tokenize ; -:convert [ translate s:put sp ] array:for-each nl ; +:convert [ translate s:put sp ] a:for-each nl ; #0 sys:argv [ s:to-lower clean original tokens convert ] unu ~~~ diff --git a/example/atua-gophermap.forth b/example/atua-gophermap.forth index 9d01068..22d98d1 100755 --- a/example/atua-gophermap.forth +++ b/example/atua-gophermap.forth @@ -70,7 +70,7 @@ unix:count-files 'FILES const Ok, now for a useful combinator. I want to be able to run something once for each file or directory in the current directory. One option would be to read the names and -construct a set, then use `array:for-each`. I decided to take +construct a set, then use `a:for-each`. I decided to take a different path: I implement a word to open a pipe, read a single line, then run a quote against it. diff --git a/example/defstruct.forth b/example/defstruct.forth index 2fa23ac..3ffe23d 100644 --- a/example/defstruct.forth +++ b/example/defstruct.forth @@ -10,13 +10,13 @@ This can be useful, so I'm doing something similar here. :make-struct (ns-) d:create , [ here swap fetch allot ] does ; ---reveal--- :defstruct (sa-) - dup array:length + dup a:length [ n:dec swap [ 'ab 'aabab reorder '@ s:append [ fetch + fetch ] make-helper '! s:append [ fetch + store ] make-helper n:dec - ] array:for-each drop + ] a:for-each drop ] sip swap make-struct ; }} ~~~ diff --git a/example/export-as-html.forth b/example/export-as-html.forth index 5e7a92c..e67c95a 100755 --- a/example/export-as-html.forth +++ b/example/export-as-html.forth @@ -99,7 +99,7 @@ Output is written to stdout. :body (s-) ' s:put nl - [ ASCII:SPACE s:tokenize [ format '  s:put ] array:for-each + [ ASCII:SPACE s:tokenize [ format '  s:put ] a:for-each '
s:put nl ] unu ' s:put nl ; diff --git a/example/hanoi.forth b/example/hanoi.forth index 094cae7..cd26f74 100644 --- a/example/hanoi.forth +++ b/example/hanoi.forth @@ -20,7 +20,7 @@ number of moves required to solve a Tower of Hanoi puzzle is Taken from https://en.m.wikipedia.org/wiki/Tower_of_Hanoi ~~~ -{ 'Num 'From 'To 'Via } [ var ] array:for-each +{ 'Num 'From 'To 'Via } [ var ] a:for-each :set !Via !To !From !Num ; :display @To @From 'Move_a_ring_from_%n_to_%n\n s:format s:put ; diff --git a/example/iOS/GopherClient.forth b/example/iOS/GopherClient.forth index cabe1b9..298accb 100644 --- a/example/iOS/GopherClient.forth +++ b/example/iOS/GopherClient.forth @@ -83,7 +83,7 @@ The next word is `display`. This will tokenize a line and display the `type` and ~~~ :display (s-) &Heap [ #0 !Displayed - ASCII:HT s:tokenize #0 array:nth fetch + ASCII:HT s:tokenize #0 a:nth fetch fetch-next type s:put ] v:preserve ; ~~~ @@ -102,7 +102,7 @@ And finally, tie everything together. This will display an index. #0 @Results [ over line display nl n:inc ] - array:for-each drop + a:for-each drop ] v:preserve ; }} ~~~ @@ -139,12 +139,12 @@ The last bit is `g`, which is used to navigate a directory. Pass it the line num ~~~ :g (n-) - &Heeap [ @Results swap array:nth fetch + &Heeap [ @Results swap a:nth fetch ASCII:HT s:tokenize - dup #0 array:nth fetch fetch [ - [ #2 array:nth fetch ] - [ #3 array:nth fetch s:chop s:to-number ] - [ #1 array:nth fetch ] tri grab + dup #0 a:nth fetch fetch [ + [ #2 a:nth fetch ] + [ #3 a:nth fetch s:chop s:to-number ] + [ #1 a:nth fetch ] tri grab ] dip display-by-type ] v:preserve ; ~~~ diff --git a/example/retro-extend.forth b/example/retro-extend.forth index 391f4b1..af32f95 100755 --- a/example/retro-extend.forth +++ b/example/retro-extend.forth @@ -238,7 +238,7 @@ top level word called returns. #0 sys:argv [ [ ASCII:SPACE s:tokenize - [ valid? [ to-TIB process ] &drop choose ] array:for-each + [ valid? [ to-TIB process ] &drop choose ] a:for-each progress ] gc ] unu nl ~~~ diff --git a/glossary.forth b/glossary.forth index 0f3e3d0..51dd4b3 100755 --- a/glossary.forth +++ b/glossary.forth @@ -94,7 +94,7 @@ simple code. [ 'field: s:prepend d:create dup compile:lit &select compile:call compile:ret - &class:word reclass n:inc ] array:for-each drop + &class:word reclass n:inc ] a:for-each drop }} ~~~ @@ -281,7 +281,7 @@ before doing the checks. :record-name !SourceLine field:name s:keep over &GlossaryNames + store ; :populate-names #1 'words.tsv [ record-name n:inc ] file:for-each-line n:dec &GlossaryNames store ; - :in-set? dup &GlossaryNames array:contains-string? ; + :in-set? dup &GlossaryNames a:contains-string? ; ---reveal--- :display-missing restrict-scope populate-names @@ -372,7 +372,7 @@ when done. '/tmp/glossary.ex2 '/tmp/glossary.namespace '/tmp/glossary.interface } - [ file:delete ] array:for-each ; + [ file:delete ] a:for-each ; ~~~ Cleaning the edited data is necessary. This entails: @@ -532,7 +532,7 @@ you edit/save the TSV data with a spreadsheet application. &field:ex2 &field:namespace &field:interface } - [ call s:put tab ] array:for-each nl ; + [ call s:put tab ] a:for-each nl ; :export-tsv 'words.tsv [ s:keep !SourceLine display-fields ] file:for-each-line ; @@ -587,7 +587,7 @@ to use. '__glossary____concise '__tsv_________concise-stack '-------------------------------- - } [ s:put nl ] array:for-each ; + } [ s:put nl ] a:for-each ; ~~~ @@ -686,7 +686,7 @@ And then the actual top level server. '*_{_font-family:_monospace;_color:_#aaa;_background:_#121212;_} 'a_{_color:_#EE7600;_} ' - } [ s:put sp ] array:for-each ; + } [ s:put sp ] a:for-each ; :entry display-result ; @@ -704,13 +704,13 @@ And then the actual top level server. :handle-http page-header - &Selector ASCII:SPACE s:tokenize #1 array:nth fetch + &Selector ASCII:SPACE s:tokenize #1 a:nth fetch dup s:length #1 eq? [ drop http:list-words ] [ n:inc s:to-number http:display ] choose ; :handle-gopher - &Selector ASCII:SPACE s:tokenize #1 array:nth fetch + &Selector ASCII:SPACE s:tokenize #1 a:nth fetch s:chop s:keep dup s:put !Target gopher:display ; ---reveal--- diff --git a/interfaces/image.c b/interfaces/image.c index e4011c8..cc71276 100644 --- a/interfaces/image.c +++ b/interfaces/image.c @@ -1,6 +1,6 @@ #include -int32_t ngaImageCells = 9287; -int32_t ngaImage[] = { 1793,-1,9269,9286,201906,0,10,1,10,2,10,3,10,4,10,5,10,6,10, +int32_t ngaImageCells = 9227; +int32_t ngaImage[] = { 1793,-1,9209,9226,201906,0,10,1,10,2,10,3,10,4,10,5,10,6,10, 7,10,8,10,9,10,10,10,11,10,12,10,13,10,14,10,15,10,16,10, 17,10,18,10,19,10,20,10,21,10,22,10,23,10,24,10,25,10,26,10, 68223234,1,2575,85000450,1,656912,355,339,268505089,66,65,135205121,66,10,101384453,0,9,10,2049,59, @@ -52,7 +52,7 @@ int32_t ngaImage[] = { 1793,-1,9269,9286,201906,0,10,1,10,2,10,3,10,4,10,5,10,6, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,59,0,114,101,0,0,83,0,99,107,0,0,110,100, - 101,120,62,0,0,116,115,0,63,0,91,92,93,94,96,123,124,125,126,0, + 101,120,62,0,0,0,103,0,63,64,91,92,93,94,96,123,124,125,126,0, 72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -160,7 +160,7 @@ int32_t ngaImage[] = { 1793,-1,9269,9286,201906,0,10,1,10,2,10,3,10,4,10,5,10,6, 3104,3157,147,118,58,117,112,100,97,116,101,45,117,115,105,110,103,0,4,1793, 3164,15,4,8,10,1,3160,2049,2088,16,10,3139,3178,147,99,111,112,121,0,1793, 3187,1,59,2049,2076,2049,62,10,1,3180,2049,2263,3,3,10,3170,3207,147,83,99, - 111,112,101,76,105,115,116,0,9068,9083,10,3194,3216,147,123,123,0,2049,1570,2, + 111,112,101,76,105,115,116,0,9008,9023,10,3194,3216,147,123,123,0,2049,1570,2, 1,3207,2049,62,16,10,3210,3241,147,45,45,45,114,101,118,101,97,108,45,45, 45,0,2049,1570,1,3207,2049,2919,16,10,3225,3255,147,125,125,0,1,3207,2049,59, 4,15,11,1793,3269,3841,3207,4097,2,10,1,3264,1793,3299,3841,3207,1793,3294,1,2, @@ -358,110 +358,107 @@ int32_t ngaImage[] = { 1793,-1,9269,9286,201906,0,10,1,10,2,10,3,10,4,10,5,10,6, 15,25,2049,2066,1793,7115,1793,7110,4,8,10,1,7107,2049,2076,10,1,7105,2049,2076, 1,7099,7,10,1,7099,8,3,10,7081,7143,147,100,58,108,111,111,107,117,112, 45,120,116,0,1,0,4,1793,7169,2049,2066,2049,161,15,11,1793,7162,4,1,2027, - 2049,2076,10,1,7156,1,11,2049,67,10,1,7148,2049,7095,3,10,7128,7191,147,97, - 114,114,97,121,58,108,101,110,103,116,104,0,15,10,7175,7218,147,97,114,114, - 97,121,58,99,111,117,110,116,101,100,45,114,101,115,117,108,116,115,0,8, - 2049,1847,1793,7231,2,2049,108,1,108,2049,2263,10,1,7223,2049,2076,10,7193,7257,147, - 97,114,114,97,121,58,102,114,111,109,45,115,116,114,105,110,103,0,2049,1847, - 1793,7276,2,2049,82,2049,108,1793,7271,2049,108,10,1,7268,2049,4034,10,1,7261,2049, - 2076,10,7236,7286,134,81,0,0,7236,7305,147,97,114,114,97,121,58,102,111,114, - 45,101,97,99,104,0,1,7286,1793,7335,4097,7286,2049,59,1793,7329,2049,59,4,1793, - 7324,3841,7286,8,10,1,7320,2049,2076,10,1,7315,2049,2263,3,10,1,7309,2049,3118, - 10,7287,7353,147,97,114,114,97,121,58,100,117,112,0,2049,1847,1793,7371,2,15, - 2049,108,1793,7366,2049,108,10,1,7363,2049,7305,10,1,7357,2049,2076,10,7340,7392,147, - 97,114,114,97,121,58,102,105,108,116,101,114,0,1793,7420,67502597,1793,7399,8,10, - 1,7397,2049,2076,4,1793,7409,2049,108,10,1,7406,1793,7415,3,10,1,7413,2049,67, - 10,1,7394,2049,7041,2049,1847,1793,7435,67502597,15,2049,108,2049,7305,10,1,7428,2049,2076, - 2049,1847,67502597,18,2049,2932,67502597,16,10,7376,7453,134,70,0,0,7376,7473,147,97,114, - 114,97,121,58,99,111,110,116,97,105,110,115,63,0,1,7453,2049,3085,1793,7487, - 67502597,11,3841,7453,22,4097,7453,10,1,7479,2049,7305,3,3841,7453,10,7454,7521,147,97, - 114,114,97,121,58,99,111,110,116,97,105,110,115,45,115,116,114,105,110,103, - 63,0,1,7453,2049,3085,1793,7536,67502597,2049,96,3841,7453,22,4097,7453,10,1,7527,2049, - 7305,3,3841,7453,10,7495,7557,147,97,114,114,97,121,58,109,97,112,0,1793,7563, - 8,2049,108,10,1,7559,2049,7041,2049,1847,1793,7578,67502597,15,2049,108,2049,7305,10,1, - 7571,2049,2076,10,7544,7600,147,97,114,114,97,121,58,114,101,118,101,114,115,101, - 0,2049,1847,1793,7634,2049,59,1793,7612,17,2049,2932,10,1,7608,2049,2088,2,2049,108, - 1793,7628,2,15,2049,108,2049,2932,10,1,7621,2049,2263,3,10,1,7604,2049,2076,10, - 7583,7652,147,97,114,114,97,121,58,110,116,104,0,17,2049,2919,10,7639,7672,147, - 97,114,114,97,121,58,114,101,100,117,99,101,0,1793,7676,4,10,1,7674,2049, - 2076,2049,7305,10,7656,7697,147,97,114,114,97,121,58,109,97,107,101,0,2049,7218, - 2049,7600,10,7683,7707,159,123,0,1,288,2049,159,1,1556,2049,147,1,288,2049,159, - 10,7702,7725,159,125,0,1,305,2049,159,1,2076,2049,147,1,1556,2049,147,1,13, - 2049,153,1,41,2049,153,1,2932,2049,147,1,305,2049,159,1,7697,2049,147,10,7720, - 7764,134,73,48,0,105,105,0,7758,7773,134,73,49,0,46,46,0,7767,7782,134, - 73,50,0,46,46,0,7776,7791,134,73,51,0,46,46,0,7785,7804,147,111,112, - 99,111,100,101,0,2049,3708,46,46,0,1,7806,1793,7816,1,0,10,1,7813,2049, - 2337,2049,3708,108,105,0,1,7822,1793,7832,1,1,10,1,7829,2049,2337,2049,3708,100, - 117,0,1,7838,1793,7848,1,2,10,1,7845,2049,2337,2049,3708,100,114,0,1,7854, - 1793,7864,1,3,10,1,7861,2049,2337,2049,3708,115,119,0,1,7870,1793,7880,1,4, - 10,1,7877,2049,2337,2049,3708,112,117,0,1,7886,1793,7896,1,5,10,1,7893,2049, - 2337,2049,3708,112,111,0,1,7902,1793,7912,1,6,10,1,7909,2049,2337,2049,3708,106, - 117,0,1,7918,1793,7928,1,7,10,1,7925,2049,2337,2049,3708,99,97,0,1,7934, - 1793,7944,1,8,10,1,7941,2049,2337,2049,3708,99,99,0,1,7950,1793,7960,1,9, - 10,1,7957,2049,2337,2049,3708,114,101,0,1,7966,1793,7976,1,10,10,1,7973,2049, - 2337,2049,3708,101,113,0,1,7982,1793,7992,1,11,10,1,7989,2049,2337,2049,3708,110, - 101,0,1,7998,1793,8008,1,12,10,1,8005,2049,2337,2049,3708,108,116,0,1,8014, - 1793,8024,1,13,10,1,8021,2049,2337,2049,3708,103,116,0,1,8030,1793,8040,1,14, - 10,1,8037,2049,2337,2049,3708,102,101,0,1,8046,1793,8056,1,15,10,1,8053,2049, - 2337,2049,3708,115,116,0,1,8062,1793,8072,1,16,10,1,8069,2049,2337,2049,3708,97, - 100,0,1,8078,1793,8088,1,17,10,1,8085,2049,2337,2049,3708,115,117,0,1,8094, - 1793,8104,1,18,10,1,8101,2049,2337,2049,3708,109,117,0,1,8110,1793,8120,1,19, - 10,1,8117,2049,2337,2049,3708,100,105,0,1,8126,1793,8136,1,20,10,1,8133,2049, - 2337,2049,3708,97,110,0,1,8142,1793,8152,1,21,10,1,8149,2049,2337,2049,3708,111, - 114,0,1,8158,1793,8168,1,22,10,1,8165,2049,2337,2049,3708,120,111,0,1,8174, - 1793,8184,1,23,10,1,8181,2049,2337,2049,3708,115,104,0,1,8190,1793,8200,1,24, - 10,1,8197,2049,2337,2049,3708,122,114,0,1,8206,1793,8216,1,25,10,1,8213,2049, - 2337,2049,3708,101,110,0,1,8222,1793,8232,1,26,10,1,8229,2049,2337,2049,3708,105, - 101,0,1,8238,1793,8248,1,27,10,1,8245,2049,2337,2049,3708,105,113,0,1,8254, - 1793,8264,1,28,10,1,8261,2049,2337,2049,3708,105,105,0,1,8270,1793,8280,1,29, - 10,1,8277,2049,2337,3,1,0,10,7794,8296,147,112,97,99,107,0,1,7764,2049, - 7804,1,7773,2049,7804,1,7782,2049,7804,1,7791,2049,7804,1,-24,24,4,1,-16,24, - 17,4,1,-8,24,17,4,17,10,7720,8333,147,105,0,2,1,7764,1,2,2049, - 3178,1,2,17,2,1,7773,1,2,2049,3178,1,2,17,2,1,7782,1,2,2049, - 3178,1,2,17,1,7791,1,2,2049,3178,2049,8296,2049,108,10,8328,8379,147,100,0, - 2049,108,10,8374,8387,147,114,0,2049,200,2049,161,15,2049,108,10,8382,8402,159,97, - 115,123,0,3841,127,1,127,2049,3085,10,8395,8416,159,125,97,115,0,4097,127,10, - 8409,8435,147,99,117,114,114,101,110,116,45,108,105,110,101,0,2049,3579,1,1025, - 18,10,8419,8457,147,99,111,117,110,116,45,116,111,107,101,110,115,0,1793,8463, - 1,32,11,10,1,8459,2049,4463,2049,82,10,8441,8484,147,110,101,120,116,45,116, - 111,107,101,110,0,1,32,2049,6255,10,8470,8507,147,112,114,111,99,101,115,115, - 45,116,111,107,101,110,115,0,1793,8533,2049,8484,4,1793,8526,2,2049,82,2049,2594, - 1,367,1,11,2049,67,10,1,8514,2049,2076,2049,2919,10,1,8509,2049,2263,2049,367, - 10,8409,8554,147,115,58,101,118,97,108,117,97,116,101,0,2049,8435,2049,4732,2049, - 8435,2,2049,8457,2049,8507,10,8540,8574,134,70,108,97,103,0,0,8566,8586,147,99, - 111,109,112,97,114,101,0,67440386,184946434,10,8575,8599,147,108,101,110,103,116,104,0, - 659202,10,8589,8609,147,110,101,120,116,0,17043713,1,1,2577,10,8601,8627,147,110,111, - 116,45,101,113,117,97,108,0,50529030,2561,0,10,8614,8639,147,108,111,111,112,0, - 524549,8609,2049,8586,18157313,8574,8574,16,420610310,1,1,8639,7,10,8540,8666,147,97,114,114, - 97,121,58,101,113,63,0,1048833,-1,8574,2049,8586,151066369,-1,8627,2049,8599,2049,8639,251724547, - 8574,10,8653,8695,147,97,114,114,97,121,58,45,101,113,63,0,2049,8666,2049,2731, - 10,8681,8706,134,76,80,0,0,8700,8716,134,73,110,100,101,120,0,0,0,0, + 2049,2076,10,1,7156,1,11,2049,67,10,1,7148,2049,7095,3,10,7128,7187,147,97, + 58,108,101,110,103,116,104,0,15,10,7175,7210,147,97,58,99,111,117,110,116, + 101,100,45,114,101,115,117,108,116,115,0,8,2049,1847,1793,7223,2,2049,108,1, + 108,2049,2263,10,1,7215,2049,2076,10,7189,7245,147,97,58,102,114,111,109,45,115, + 116,114,105,110,103,0,2049,1847,1793,7264,2,2049,82,2049,108,1793,7259,2049,108,10, + 1,7256,2049,4034,10,1,7249,2049,2076,10,7228,7274,134,81,0,0,7228,7289,147,97, + 58,102,111,114,45,101,97,99,104,0,1,7274,1793,7319,4097,7274,2049,59,1793,7313, + 2049,59,4,1793,7308,3841,7274,8,10,1,7304,2049,2076,10,1,7299,2049,2263,3,10, + 1,7293,2049,3118,10,7275,7333,147,97,58,100,117,112,0,2049,1847,1793,7351,2,15, + 2049,108,1793,7346,2049,108,10,1,7343,2049,7289,10,1,7337,2049,2076,10,7324,7368,147, + 97,58,102,105,108,116,101,114,0,1793,7396,67502597,1793,7375,8,10,1,7373,2049,2076, + 4,1793,7385,2049,108,10,1,7382,1793,7391,3,10,1,7389,2049,67,10,1,7370,2049, + 7041,2049,1847,1793,7411,67502597,15,2049,108,2049,7289,10,1,7404,2049,2076,2049,1847,67502597,18, + 2049,2932,67502597,16,10,7356,7429,134,70,0,0,7356,7445,147,97,58,99,111,110,116, + 97,105,110,115,63,0,1,7429,2049,3085,1793,7459,67502597,11,3841,7429,22,4097,7429,10, + 1,7451,2049,7289,3,3841,7429,10,7430,7489,147,97,58,99,111,110,116,97,105,110, + 115,45,115,116,114,105,110,103,63,0,1,7429,2049,3085,1793,7504,67502597,2049,96,3841, + 7429,22,4097,7429,10,1,7495,2049,7289,3,3841,7429,10,7467,7521,147,97,58,109,97, + 112,0,1793,7527,8,2049,108,10,1,7523,2049,7041,2049,1847,1793,7542,67502597,15,2049,108, + 2049,7289,10,1,7535,2049,2076,10,7512,7560,147,97,58,114,101,118,101,114,115,101, + 0,2049,1847,1793,7594,2049,59,1793,7572,17,2049,2932,10,1,7568,2049,2088,2,2049,108, + 1793,7588,2,15,2049,108,2049,2932,10,1,7581,2049,2263,3,10,1,7564,2049,2076,10, + 7547,7608,147,97,58,110,116,104,0,17,2049,2919,10,7599,7624,147,97,58,114,101, + 100,117,99,101,0,1793,7628,4,10,1,7626,2049,2076,2049,7289,10,7612,7645,147,97, + 58,109,97,107,101,0,2049,7210,2049,7560,10,7635,7655,159,123,0,1,288,2049,159, + 1,1556,2049,147,1,288,2049,159,10,7650,7673,159,125,0,1,305,2049,159,1,2076, + 2049,147,1,1556,2049,147,1,13,2049,153,1,41,2049,153,1,2932,2049,147,1,305, + 2049,159,1,7645,2049,147,10,7668,7712,134,73,48,0,105,105,0,7706,7721,134,73, + 49,0,46,46,0,7715,7730,134,73,50,0,46,46,0,7724,7739,134,73,51,0, + 46,46,0,7733,7752,147,111,112,99,111,100,101,0,2049,3708,46,46,0,1,7754, + 1793,7764,1,0,10,1,7761,2049,2337,2049,3708,108,105,0,1,7770,1793,7780,1,1, + 10,1,7777,2049,2337,2049,3708,100,117,0,1,7786,1793,7796,1,2,10,1,7793,2049, + 2337,2049,3708,100,114,0,1,7802,1793,7812,1,3,10,1,7809,2049,2337,2049,3708,115, + 119,0,1,7818,1793,7828,1,4,10,1,7825,2049,2337,2049,3708,112,117,0,1,7834, + 1793,7844,1,5,10,1,7841,2049,2337,2049,3708,112,111,0,1,7850,1793,7860,1,6, + 10,1,7857,2049,2337,2049,3708,106,117,0,1,7866,1793,7876,1,7,10,1,7873,2049, + 2337,2049,3708,99,97,0,1,7882,1793,7892,1,8,10,1,7889,2049,2337,2049,3708,99, + 99,0,1,7898,1793,7908,1,9,10,1,7905,2049,2337,2049,3708,114,101,0,1,7914, + 1793,7924,1,10,10,1,7921,2049,2337,2049,3708,101,113,0,1,7930,1793,7940,1,11, + 10,1,7937,2049,2337,2049,3708,110,101,0,1,7946,1793,7956,1,12,10,1,7953,2049, + 2337,2049,3708,108,116,0,1,7962,1793,7972,1,13,10,1,7969,2049,2337,2049,3708,103, + 116,0,1,7978,1793,7988,1,14,10,1,7985,2049,2337,2049,3708,102,101,0,1,7994, + 1793,8004,1,15,10,1,8001,2049,2337,2049,3708,115,116,0,1,8010,1793,8020,1,16, + 10,1,8017,2049,2337,2049,3708,97,100,0,1,8026,1793,8036,1,17,10,1,8033,2049, + 2337,2049,3708,115,117,0,1,8042,1793,8052,1,18,10,1,8049,2049,2337,2049,3708,109, + 117,0,1,8058,1793,8068,1,19,10,1,8065,2049,2337,2049,3708,100,105,0,1,8074, + 1793,8084,1,20,10,1,8081,2049,2337,2049,3708,97,110,0,1,8090,1793,8100,1,21, + 10,1,8097,2049,2337,2049,3708,111,114,0,1,8106,1793,8116,1,22,10,1,8113,2049, + 2337,2049,3708,120,111,0,1,8122,1793,8132,1,23,10,1,8129,2049,2337,2049,3708,115, + 104,0,1,8138,1793,8148,1,24,10,1,8145,2049,2337,2049,3708,122,114,0,1,8154, + 1793,8164,1,25,10,1,8161,2049,2337,2049,3708,101,110,0,1,8170,1793,8180,1,26, + 10,1,8177,2049,2337,2049,3708,105,101,0,1,8186,1793,8196,1,27,10,1,8193,2049, + 2337,2049,3708,105,113,0,1,8202,1793,8212,1,28,10,1,8209,2049,2337,2049,3708,105, + 105,0,1,8218,1793,8228,1,29,10,1,8225,2049,2337,3,1,0,10,7742,8244,147, + 112,97,99,107,0,1,7712,2049,7752,1,7721,2049,7752,1,7730,2049,7752,1,7739,2049, + 7752,1,-24,24,4,1,-16,24,17,4,1,-8,24,17,4,17,10,7668,8281,147, + 105,0,2,1,7712,1,2,2049,3178,1,2,17,2,1,7721,1,2,2049,3178,1, + 2,17,2,1,7730,1,2,2049,3178,1,2,17,1,7739,1,2,2049,3178,2049,8244, + 2049,108,10,8276,8327,147,100,0,2049,108,10,8322,8335,147,114,0,2049,200,2049,161, + 15,2049,108,10,8330,8350,159,97,115,123,0,3841,127,1,127,2049,3085,10,8343,8364, + 159,125,97,115,0,4097,127,10,8357,8383,147,99,117,114,114,101,110,116,45,108, + 105,110,101,0,2049,3579,1,1025,18,10,8367,8405,147,99,111,117,110,116,45,116, + 111,107,101,110,115,0,1793,8411,1,32,11,10,1,8407,2049,4463,2049,82,10,8389, + 8432,147,110,101,120,116,45,116,111,107,101,110,0,1,32,2049,6255,10,8418,8455, + 147,112,114,111,99,101,115,115,45,116,111,107,101,110,115,0,1793,8481,2049,8432, + 4,1793,8474,2,2049,82,2049,2594,1,367,1,11,2049,67,10,1,8462,2049,2076,2049, + 2919,10,1,8457,2049,2263,2049,367,10,8357,8502,147,115,58,101,118,97,108,117,97, + 116,101,0,2049,8383,2049,4732,2049,8383,2,2049,8405,2049,8455,10,8488,8522,134,70,108, + 97,103,0,0,8514,8534,147,99,111,109,112,97,114,101,0,67440386,184946434,10,8523,8547, + 147,108,101,110,103,116,104,0,659202,10,8537,8557,147,110,101,120,116,0,17043713,1, + 1,2577,10,8549,8575,147,110,111,116,45,101,113,117,97,108,0,50529030,2561,0,10, + 8562,8587,147,108,111,111,112,0,524549,8557,2049,8534,18157313,8522,8522,16,420610310,1,1,8587, + 7,10,8488,8610,147,97,58,101,113,63,0,1048833,-1,8522,2049,8534,151066369,-1,8575,2049, + 8547,2049,8587,251724547,8522,10,8601,8635,147,97,58,45,101,113,63,0,2049,8610,2049,2731, + 10,8625,8646,134,76,80,0,0,8640,8656,134,73,110,100,101,120,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,8707,8852,147,110,101,120,116,0,3841,8706,1,8716,17,2049,3020, - 10,8844,8868,147,112,114,101,112,0,1,8706,2049,3020,1,0,3841,8706,1,8716,17, - 16,10,8860,8889,147,100,111,110,101,0,1,8706,2049,3035,10,8681,8899,147,73,0, - 3841,8706,1,8716,17,15,10,8894,8911,147,74,0,3841,8706,1,8716,17,2049,2932,15, - 10,8906,8925,147,75,0,3841,8706,1,8716,17,1,2,18,15,10,8920,8956,147,116, - 105,109,101,115,60,119,105,116,104,45,105,110,100,101,120,62,0,2049,8868,4, - 1793,8976,25,2049,2932,5,1,21,2049,2088,6,2049,8852,1,8961,7,10,1,8961,8, - 3,2049,8889,10,8935,8991,159,104,111,111,107,0,1,1793,2049,108,2049,1847,2049,2919, - 2049,108,10,8983,9014,147,115,101,116,45,104,111,111,107,0,2049,2919,16,10,9002, - 9028,147,117,110,104,111,111,107,0,2049,2919,2,2049,2919,4,16,10,9018,9052,147, - 105,111,58,101,110,117,109,101,114,97,116,101,0,27,10,9036,9066,147,105,111, - 58,113,117,101,114,121,0,28,10,9054,9081,147,105,111,58,105,110,118,111,107, - 101,0,29,10,9068,9091,134,83,108,111,116,0,0,9068,9107,147,105,111,58,115, - 99,97,110,45,102,111,114,0,1,-1,4097,9091,2049,9052,1793,9133,2049,8899,2049,9066, - 772,67502597,11,1793,9129,2049,8899,4097,9091,10,1,9124,9,10,1,9115,2049,8956,3,3841, - 9091,10,9092,9150,147,99,58,112,117,116,0,1793,9152,1,0,2049,9081,10,9141,9163, - 147,110,108,0,1,10,2049,9150,10,9157,9174,147,115,112,0,1,32,2049,9150,10, - 9168,9186,147,116,97,98,0,1,9,2049,9150,10,9179,9200,147,115,58,112,117,116, - 0,1,9150,2049,4034,10,9191,9214,147,110,58,112,117,116,0,2049,6071,2049,9200,10, - 9205,9228,147,114,101,115,101,116,0,2049,1556,25,5,3,6,1,1,18,1,9230, - 7,10,9219,9255,147,100,117,109,112,45,115,116,97,99,107,0,2049,1556,25,3, - 5,2049,9255,6,2,2049,9214,2049,9174,10,9241,9277,147,70,82,69,69,0,2049,3579, + 0,0,0,0,0,8647,8792,147,110,101,120,116,0,3841,8646,1,8656,17,2049,3020, + 10,8784,8808,147,112,114,101,112,0,1,8646,2049,3020,1,0,3841,8646,1,8656,17, + 16,10,8800,8829,147,100,111,110,101,0,1,8646,2049,3035,10,8625,8839,147,73,0, + 3841,8646,1,8656,17,15,10,8834,8851,147,74,0,3841,8646,1,8656,17,2049,2932,15, + 10,8846,8865,147,75,0,3841,8646,1,8656,17,1,2,18,15,10,8860,8896,147,116, + 105,109,101,115,60,119,105,116,104,45,105,110,100,101,120,62,0,2049,8808,4, + 1793,8916,25,2049,2932,5,1,21,2049,2088,6,2049,8792,1,8901,7,10,1,8901,8, + 3,2049,8829,10,8875,8931,159,104,111,111,107,0,1,1793,2049,108,2049,1847,2049,2919, + 2049,108,10,8923,8954,147,115,101,116,45,104,111,111,107,0,2049,2919,16,10,8942, + 8968,147,117,110,104,111,111,107,0,2049,2919,2,2049,2919,4,16,10,8958,8992,147, + 105,111,58,101,110,117,109,101,114,97,116,101,0,27,10,8976,9006,147,105,111, + 58,113,117,101,114,121,0,28,10,8994,9021,147,105,111,58,105,110,118,111,107, + 101,0,29,10,9008,9031,134,83,108,111,116,0,0,9008,9047,147,105,111,58,115, + 99,97,110,45,102,111,114,0,1,-1,4097,9031,2049,8992,1793,9073,2049,8839,2049,9006, + 772,67502597,11,1793,9069,2049,8839,4097,9031,10,1,9064,9,10,1,9055,2049,8896,3,3841, + 9031,10,9032,9090,147,99,58,112,117,116,0,1793,9092,1,0,2049,9021,10,9081,9103, + 147,110,108,0,1,10,2049,9090,10,9097,9114,147,115,112,0,1,32,2049,9090,10, + 9108,9126,147,116,97,98,0,1,9,2049,9090,10,9119,9140,147,115,58,112,117,116, + 0,1,9090,2049,4034,10,9131,9154,147,110,58,112,117,116,0,2049,6071,2049,9140,10, + 9145,9168,147,114,101,115,101,116,0,2049,1556,25,5,3,6,1,1,18,1,9170, + 7,10,9159,9195,147,100,117,109,112,45,115,116,97,99,107,0,2049,1556,25,3, + 5,2049,9195,6,2,2049,9154,2049,9114,10,9181,9217,147,70,82,69,69,0,2049,3579, 1,1025,18,2049,1847,18,10,0 }; diff --git a/interfaces/native/image.c b/interfaces/native/image.c index 8b50eb4..b32ee3e 100644 --- a/interfaces/native/image.c +++ b/interfaces/native/image.c @@ -1,6 +1,6 @@ #include -int32_t ngaImageCells = 38541; -int32_t ngaImage[] = { 1793,13218,38499,38540,201906,0,10,1,10,2,10,3,10,4,10,5,10,6,10, +int32_t ngaImageCells = 38681; +int32_t ngaImage[] = { 1793,13358,38639,38680,201906,0,10,1,10,2,10,3,10,4,10,5,10,6,10, 7,10,8,10,9,10,10,10,11,10,12,10,13,10,14,10,15,10,16,10, 17,10,18,10,19,10,20,10,21,10,22,10,23,10,24,10,25,10,26,10, 68223234,1,2575,85000450,1,656912,355,339,268505089,66,65,135205121,66,10,101384453,0,9,10,2049,59, @@ -17,7 +17,7 @@ int32_t ngaImage[] = { 1793,13218,38499,38540,201906,0,10,1,10,2,10,3,10,4,10,5, -1,127,10,2049,200,2049,161,459023,134,285282049,3,2,16846593,127,-1,127,134283536,1793,108,16846593, 3,0,108,8,659201,3,524545,25,113,17043201,3,7,2049,113,2049,108,268505092,127,1642241,127, 656131,659201,3,524545,7,113,2049,108,459009,19,113,459009,55,113,459009,15,113,459009,17,113, - 1793,13274,10,524546,161,134284303,163,1807,1025,1642241,230,285282049,347,1,459012,342,117509889,180,342,134287105, + 1793,13414,10,524546,161,134284303,163,1807,1025,1642241,230,285282049,347,1,459012,342,117509889,180,342,134287105, 347,200,16845825,0,355,339,1793,67,17826050,347,250,8,117506305,348,358,67,0,9,153,100, 117,112,0,375,11,153,100,114,111,112,0,382,13,153,115,119,97,112,0,390, 21,153,99,97,108,108,0,398,27,153,101,113,63,0,406,29,153,45,101,113, @@ -85,430 +85,437 @@ int32_t ngaImage[] = { 1793,13218,38499,38540,201906,0,10,1,10,2,10,3,10,4,10,5, 1649,147,114,101,99,108,97,115,115,0,2049,1570,2049,163,16,10,1638,1668,147,105, 109,109,101,100,105,97,116,101,0,1,159,2049,1649,10,1655,1681,147,100,97,116, 97,0,1,134,2049,1649,10,1673,1699,147,112,114,105,109,105,116,105,118,101,0, - 1,153,2049,1649,10,1686,1709,159,41,0,10,1704,1725,147,99,111,109,112,105,108, - 101,58,108,105,116,0,1,1,2049,108,2049,108,10,1710,1748,147,99,111,109,112, - 105,108,101,58,106,117,109,112,0,1,1793,2049,108,2049,108,10,1732,1771,147,99, - 111,109,112,105,108,101,58,99,97,108,108,0,1,2049,2049,108,2049,108,10,1755, - 1793,147,99,111,109,112,105,108,101,58,114,101,116,0,1,10,2049,108,10,1778, - 1812,147,99,111,109,112,105,108,105,110,103,63,0,1,127,15,10,1798,1828,159, - 112,114,101,102,105,120,58,96,0,2049,221,2049,108,10,1816,1841,147,104,101,114, - 101,0,1,3,15,10,1833,1857,159,112,114,101,102,105,120,58,64,0,2049,200, - 2049,161,15,2049,1812,1793,1873,1,3841,2049,108,2049,108,10,1,1866,1793,1879,15,10, - 1,1877,2049,67,10,1845,1896,159,112,114,101,102,105,120,58,33,0,2049,200,2049, - 161,15,2049,1812,1793,1912,1,4097,2049,108,2049,108,10,1,1905,1793,1918,16,10,1, - 1916,2049,67,10,1884,1935,147,100,58,99,114,101,97,116,101,0,1,134,1,0, - 2049,167,2049,1841,2049,1570,2049,161,16,10,1923,1959,147,118,97,114,60,110,62,0, - 2049,1935,2049,108,10,1949,1971,147,118,97,114,0,1,0,4,2049,1959,10,1964,1986, - 147,99,111,110,115,116,0,2049,1935,2049,1570,2049,161,16,10,1977,2002,153,116,117, - 99,107,0,100926722,10,1994,2012,153,111,118,101,114,0,67502597,10,2004,2021,153,110,105, - 112,0,772,10,2014,2036,153,100,114,111,112,45,112,97,105,114,0,771,10,2023, - 2046,153,63,100,117,112,0,6402,10,2038,2060,147,100,117,112,45,112,97,105,114, - 0,67502597,67502597,10,2048,2070,147,100,105,112,0,4,5,8,6,10,2063,2082,147,115, - 105,112,0,5,2,6,4,1,21,2049,2070,10,2075,2097,147,98,105,0,1,2082, - 2049,2070,8,10,2091,2110,147,98,105,42,0,1,2070,2049,2070,8,10,2103,2123,147, - 98,105,64,0,2,2049,2110,10,2116,2134,147,116,114,105,0,1793,2143,1,2082,2049, - 2070,2049,2082,10,1,2136,2049,2070,8,10,2127,2157,147,116,114,105,42,0,1793,2174, - 1793,2167,4,1,2070,2049,2070,10,1,2161,2049,2070,2049,2070,10,1,2159,2049,2070,8, - 10,2149,2188,147,116,114,105,64,0,2,2,2049,2157,10,2180,2202,147,119,104,105, - 108,101,0,1793,2214,2,2049,2070,4,25,3,1,2204,7,10,1,2204,8,3,10, - 2193,2228,147,117,110,116,105,108,0,1793,2243,2,2049,2070,4,1,-1,23,25,3, - 1,2230,7,10,1,2230,8,3,10,2219,2257,147,116,105,109,101,115,0,4,1793, - 2274,25,1,1,18,5,1,21,2049,2082,6,1,2260,7,10,1,2260,8,3,10, - 2248,2287,147,99,97,115,101,0,1793,2292,67502597,11,10,1,2289,2049,2070,4,1793,2304, - 772,8,1,-1,10,1,2299,1793,2312,3,1,0,10,1,2308,2049,67,25,6,3, - 3,10,2279,2331,147,115,58,99,97,115,101,0,1793,2337,67502597,2049,96,10,1,2333, - 2049,2070,4,1793,2349,772,8,1,-1,10,1,2344,1793,2357,3,1,0,10,1,2353, - 2049,67,25,6,3,3,10,2321,2378,159,112,114,101,102,105,120,58,124,0,2049, - 200,1793,2386,2049,161,15,10,1,2382,1793,2394,2049,163,15,10,1,2390,2049,2097,2049, - 1812,1793,2414,1793,2407,2049,134,10,1,2404,2049,2070,2049,1771,10,1,2402,1793,2420,8, - 10,1,2418,2049,67,10,2366,2433,147,84,82,85,69,0,1,-1,10,2425,2445,147, - 70,65,76,83,69,0,1,0,10,2436,2457,147,108,116,101,113,63,0,2049,2060, - 11,1793,2464,13,10,1,2462,2049,2070,22,10,2448,2479,147,103,116,101,113,63,0, - 2049,2060,11,1793,2486,14,10,1,2484,2049,2070,22,10,2470,2499,147,105,102,59,0, - 67502597,1793,2504,9,10,1,2502,2049,2070,25,6,771,10,2492,2520,147,45,105,102,59, - 0,67502597,1793,2526,2049,73,10,1,2523,2049,2070,1,-1,23,25,6,771,10,2512,2546, - 147,110,58,77,65,88,0,1,2147483647,10,2537,2558,147,110,58,77,73,78,0,1, - -2147483648,10,2549,2572,147,110,58,122,101,114,111,63,0,1,0,11,10,2561,2588,147, - 110,58,45,122,101,114,111,63,0,1,0,12,10,2576,2607,147,110,58,110,101, - 103,97,116,105,118,101,63,0,1,0,13,10,2592,2626,147,110,58,112,111,115, - 105,116,105,118,101,63,0,1,-1,14,10,2611,2654,147,110,58,115,116,114,105, - 99,116,108,121,45,112,111,115,105,116,105,118,101,63,0,1,0,14,10,2630, - 2669,147,110,58,101,118,101,110,63,0,1,2,20,3,2049,2572,10,2658,2686,147, - 110,58,111,100,100,63,0,1,2,20,3,2049,2588,10,2676,2700,153,114,111,116, - 0,67503109,10,2693,2707,153,47,0,197652,10,2702,2716,153,109,111,100,0,788,10,2709, - 2725,147,110,111,116,0,1,-1,23,10,2718,2738,147,110,58,112,111,119,0,1, - 1,4,1793,2746,67502597,19,10,1,2743,2049,2257,772,10,2729,2764,147,110,58,110,101, - 103,97,116,101,0,1,-1,19,10,2752,2780,147,110,58,115,113,117,97,114,101, - 0,2,19,10,2768,2793,147,110,58,115,113,114,116,0,1,1,1793,2811,2049,2060, - 197652,67502597,18,1,2,197652,25,17,1,2797,7,10,1,2797,8,772,10,2783,2825,147, - 110,58,109,105,110,0,2049,2060,13,1793,2832,3,10,1,2830,1793,2838,772,10,1, - 2836,2049,67,10,2816,2852,147,110,58,109,97,120,0,2049,2060,14,1793,2859,3,10, - 1,2857,1793,2865,772,10,1,2863,2049,67,10,2843,2879,147,110,58,97,98,115,0, - 2,2049,2764,2049,2852,10,2870,2896,147,110,58,108,105,109,105,116,0,4,5,2049, - 2825,6,2049,2852,10,2885,2913,147,110,58,105,110,99,0,1,1,17,10,2904,2926, - 147,110,58,100,101,99,0,1,1,18,10,2917,2944,147,110,58,98,101,116,119, - 101,101,110,63,0,67503109,1793,2952,67503109,67503109,2049,2896,10,1,2947,2049,2082,11,10,2930, - 2970,147,118,58,105,110,99,45,98,121,0,1793,2975,15,17,10,1,2972,2049,2082, - 16,10,2958,2993,147,118,58,100,101,99,45,98,121,0,1793,2999,15,4,18,10, - 1,2995,2049,2082,16,10,2981,3014,147,118,58,105,110,99,0,1,1,4,2049,2970, - 10,3005,3029,147,118,58,100,101,99,0,1,1,4,2049,2993,10,3020,3046,147,118, - 58,108,105,109,105,116,0,5,5,2,15,6,6,2049,2896,4,16,10,3035,3065, - 147,118,58,111,110,0,2049,2433,4,16,10,3057,3079,147,118,58,111,102,102,0, - 2049,2445,4,16,10,3070,3093,147,97,108,108,111,116,0,1,3,2049,2970,10,3084, - 3112,147,118,58,112,114,101,115,101,114,118,101,0,4,2,15,1793,3126,1793,3121, - 8,10,1,3119,2049,2070,10,1,3117,2049,2070,4,16,10,3098,3151,147,118,58,117, - 112,100,97,116,101,45,117,115,105,110,103,0,4,1793,3158,15,4,8,10,1, - 3154,2049,2082,16,10,3133,3172,147,99,111,112,121,0,1793,3181,1,59,2049,2070,2049, - 62,10,1,3174,2049,2257,3,3,10,3164,3201,147,83,99,111,112,101,76,105,115, - 116,0,37103,37218,10,3188,3210,147,123,123,0,2049,1570,2,1,3201,2049,62,16,10, - 3204,3235,147,45,45,45,114,101,118,101,97,108,45,45,45,0,2049,1570,1,3201, - 2049,2913,16,10,3219,3249,147,125,125,0,1,3201,2049,59,4,15,11,1793,3263,3841, - 3201,4097,2,10,1,3258,1793,3293,3841,3201,1793,3288,1,2,15,2,15,1,3201,2049, - 2913,15,12,25,3,1,3273,7,10,1,3271,8,16,10,1,3267,2049,67,10,3243, - 3308,134,66,117,102,102,101,114,0,0,10,3298,3317,134,80,116,114,0,0,10, - 3310,3332,147,116,101,114,109,105,110,97,116,101,0,1,0,3841,3317,16,10,3243, - 3354,147,98,117,102,102,101,114,58,115,116,97,114,116,0,3841,3308,10,3338,3371, - 147,98,117,102,102,101,114,58,101,110,100,0,3841,3317,10,3357,3388,147,98,117, - 102,102,101,114,58,97,100,100,0,2049,3371,16,1,3317,2049,3014,2049,3332,10,3374, - 3412,147,98,117,102,102,101,114,58,103,101,116,0,1,3317,2049,3029,2049,3371,15, - 2049,3332,10,3398,3438,147,98,117,102,102,101,114,58,101,109,112,116,121,0,2049, - 3354,4097,3317,2049,3332,10,3422,3460,147,98,117,102,102,101,114,58,115,105,122,101, - 0,2049,3371,2049,3354,18,10,3445,3480,147,98,117,102,102,101,114,58,115,101,116, - 0,4097,3308,2049,3438,10,3466,3504,147,98,117,102,102,101,114,58,112,114,101,115, - 101,114,118,101,0,3841,3308,3841,3317,1793,3521,1793,3514,8,10,1,3512,2049,2070,4097, - 3308,10,1,3510,2049,2070,4097,3317,10,3485,3543,134,84,101,109,112,83,116,114,105, - 110,103,115,0,32,3528,3561,134,84,101,109,112,83,116,114,105,110,103,77,97, - 120,0,512,3544,3573,147,83,84,82,73,78,71,83,0,2049,1543,3841,3543,3841,3561, - 19,18,10,3562,3593,134,67,117,114,114,101,110,116,0,27,10,3582,3608,147,115, - 58,112,111,105,110,116,101,114,0,3841,3593,3841,3561,19,2049,3573,17,10,3595,3627, - 147,115,58,110,101,120,116,0,1,3593,2049,3014,3841,3593,3841,3543,11,1793,3643,1, - 0,4097,3593,10,1,3638,9,10,3562,3657,147,115,58,116,101,109,112,0,2,2049, - 82,2049,2913,2049,3608,4,2049,3172,2049,3608,2049,3627,10,3647,3683,147,115,58,101,109, - 112,116,121,0,2049,3608,2049,3627,1,0,67502597,16,10,3672,3702,147,115,58,115,107, - 105,112,0,6,1793,3710,2049,59,2049,2588,10,1,3705,2049,2202,2049,2926,5,10,3692, - 3728,147,115,58,107,101,101,112,0,2049,1812,1793,3737,1,3702,2049,1771,10,1,3732, - 9,2049,1841,1793,3747,2049,122,10,1,3744,2049,2070,2049,134,10,3718,3766,159,112,114, - 101,102,105,120,58,39,0,2049,1812,1793,3773,2049,3728,10,1,3770,1793,3780,2049,3657, - 10,1,3777,2049,67,10,3754,3795,147,115,58,99,104,111,112,0,2049,3657,2,2049, - 82,67502597,17,2049,2926,1,0,4,16,10,3785,3822,147,115,58,114,101,118,101,114, - 115,101,0,1793,3864,2,2049,3657,2049,3480,1,82,1793,3840,2,2049,82,17,2049,2926, - 10,1,3833,2049,2097,4,1793,3854,2,15,2049,3388,2049,2926,10,1,3847,2049,2257,3, - 2049,3354,2049,3657,10,1,3824,2049,3504,10,3809,3884,147,115,58,116,114,105,109,45, - 108,101,102,116,0,2049,3657,1793,3909,2049,59,1793,3896,1,32,11,10,1,3892,1793, - 3903,2049,2588,10,1,3900,2049,2097,21,10,1,3888,2049,2202,2049,2926,10,3869,3932,147, - 115,58,116,114,105,109,45,114,105,103,104,116,0,2049,3657,2049,3822,2049,3884,2049, - 3822,10,3916,3951,147,115,58,116,114,105,109,0,2049,3932,2049,3884,10,3941,3969,147, - 115,58,112,114,101,112,101,110,100,0,2049,3657,1793,3993,2,2049,82,17,1793,3985, - 2,2049,82,2049,2913,10,1,3979,2049,2070,4,2049,3172,10,1,3973,2049,2082,10,3956, - 4010,147,115,58,97,112,112,101,110,100,0,4,2049,3969,10,3998,4028,147,115,58, - 102,111,114,45,101,97,99,104,0,1793,4068,67502597,15,25,3,2049,2060,1793,4051,1793, - 4046,1,35,2049,2070,8,10,1,4040,2049,2070,10,1,4038,2049,2070,1793,4060,2049,2913, - 10,1,4057,2049,2070,1,4030,7,10,1,4030,8,771,10,4014,4087,147,115,58,105, - 110,100,101,120,45,111,102,0,4,1793,4110,2049,59,25,4,1793,4099,67502597,12,10, - 1,4096,2049,2070,4,25,3,1,4090,7,10,1,4090,2049,2082,1793,4121,18,2049,2926, - 772,10,1,4116,2049,2082,2049,82,67502597,11,1793,4135,3,1,-1,10,1,4131,9,10, - 4073,4159,147,115,58,99,111,110,116,97,105,110,115,45,99,104,97,114,63,0, - 2049,4087,1,-1,12,10,4139,4172,134,83,114,99,0,0,4165,4180,134,84,97,114, - 0,0,4173,4188,134,80,97,100,0,0,4181,4194,134,73,0,0,4189,4200,134,70, - 0,0,4195,4207,134,65,116,0,0,4201,4221,147,116,101,114,109,105,110,97,116, - 101,0,1,0,3841,4188,3841,4180,2049,82,17,16,10,4208,4243,147,101,120,116,114, - 97,99,116,0,3841,4172,3841,4194,17,3841,4188,3841,4180,2049,82,2049,3172,10,4232,4268, - 147,99,111,109,112,97,114,101,0,3841,4188,3841,4180,2049,96,3841,4200,22,4097,4200, - 3841,4200,1793,4288,3841,4194,4097,4207,10,1,4283,2049,73,10,4257,4301,147,110,101,120, - 116,0,1,4194,2049,3014,10,4139,4328,147,115,58,99,111,110,116,97,105,110,115, - 45,115,116,114,105,110,103,63,0,4097,4180,4097,4172,2049,3683,4097,4188,1,0,4097, - 4194,1,0,4097,4200,3841,4172,2049,82,1793,4359,2049,4243,2049,4221,2049,4268,2049,4301,10, - 1,4350,2049,2257,3841,4200,10,4306,4387,147,115,58,105,110,100,101,120,45,111,102, - 45,115,116,114,105,110,103,0,4097,4180,4097,4172,2049,3683,4097,4188,1,0,4097,4194, - 1,0,4097,4200,1,-1,4097,4207,3841,4172,2049,82,1793,4422,2049,4243,2049,4221,2049,4268, - 2049,4301,10,1,4413,2049,2257,3841,4200,1793,4433,3841,4207,10,1,4430,1793,4440,1,-1, - 10,1,4437,2049,67,10,4366,4457,147,115,58,102,105,108,116,101,114,0,1793,4494, - 2049,3683,2049,3480,4,1793,4486,2049,2060,4,8,1793,4475,2049,3388,10,1,4472,1793,4481, - 3,10,1,4479,2049,67,10,1,4466,2049,4028,3,2049,3354,10,1,4459,2049,3504,10, - 4445,4508,147,115,58,109,97,112,0,1793,4530,2049,3683,2049,3480,4,1793,4522,67502597,8, - 2049,3388,10,1,4517,2049,4028,3,2049,3354,10,1,4510,2049,3504,10,4499,4547,147,115, - 58,115,117,98,115,116,114,0,1793,4553,17,2049,3683,10,1,4549,2049,2070,1793,4570, - 67502597,1793,4565,2049,3172,10,1,4562,2049,2070,10,1,4559,2049,2082,67502597,1793,4583,17,1, - 0,4,16,10,1,4577,2049,2070,10,4535,4599,147,115,58,114,105,103,104,116,0, - 67502597,2049,82,67502597,18,4,2049,4547,10,4588,4618,147,115,58,108,101,102,116,0,1, - 0,4,2049,4547,10,4608,4642,147,115,58,98,101,103,105,110,115,45,119,105,116, - 104,63,0,2,2049,82,1793,4649,4,10,1,4647,2049,2070,2049,4618,2049,96,10,4624, - 4674,147,115,58,101,110,100,115,45,119,105,116,104,63,0,2,2049,82,1793,4681, - 4,10,1,4679,2049,2070,2049,4599,2049,96,10,4658,4700,147,115,58,104,97,115,104, - 0,1,5381,4,1793,4711,4,1,33,19,17,10,1,4705,2049,4028,10,4690,4726,147, - 115,58,99,111,112,121,0,67502597,2049,82,2049,2913,2049,3172,10,4716,4746,147,115,58, - 68,73,71,73,84,83,0,2049,3702,48,49,50,51,52,53,54,55,56,57,0, - 1,4748,10,4734,4783,147,115,58,65,83,67,73,73,45,76,79,87,69,82,67, - 65,83,69,0,2049,3702,97,98,99,100,101,102,103,104,105,106,107,108,109,110, - 111,112,113,114,115,116,117,118,119,120,121,122,0,1,4785,10,4762,4836,147,115, - 58,65,83,67,73,73,45,85,80,80,69,82,67,65,83,69,0,2049,3702,65, - 66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85, - 86,87,88,89,90,0,1,4838,10,4815,4887,147,115,58,65,83,67,73,73,45, - 76,69,84,84,69,82,83,0,2049,3702,97,98,99,100,101,102,103,104,105,106, - 107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,65,66,67,68, - 69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88, - 89,90,0,1,4889,10,4868,4962,147,115,58,80,85,78,67,84,85,65,84,73, - 79,78,0,2049,3702,95,33,34,35,36,37,38,39,40,41,42,43,44,45,46, - 47,58,59,60,61,62,63,64,91,92,93,94,96,123,124,125,126,0,1,4964, - 1,95,67502597,16,10,4945,5020,134,115,58,87,72,73,84,69,83,80,65,67,69, - 0,9,10,13,0,5004,0,134,65,83,67,73,73,58,78,85,76,0,5024,1, - 134,65,83,67,73,73,58,83,79,72,0,5037,2,134,65,83,67,73,73,58, - 83,84,88,0,5050,3,134,65,83,67,73,73,58,69,84,88,0,5063,4,134, - 65,83,67,73,73,58,69,79,84,0,5076,5,134,65,83,67,73,73,58,69, - 78,81,0,5089,6,134,65,83,67,73,73,58,65,67,75,0,5102,7,134,65, - 83,67,73,73,58,66,69,76,0,5115,8,134,65,83,67,73,73,58,66,83, - 0,5128,9,134,65,83,67,73,73,58,72,84,0,5140,10,134,65,83,67,73, - 73,58,76,70,0,5152,11,134,65,83,67,73,73,58,86,84,0,5164,12,134, - 65,83,67,73,73,58,70,70,0,5176,13,134,65,83,67,73,73,58,67,82, - 0,5188,14,134,65,83,67,73,73,58,83,79,0,5200,15,134,65,83,67,73, - 73,58,83,73,0,5212,16,134,65,83,67,73,73,58,68,76,69,0,5224,17, - 134,65,83,67,73,73,58,68,67,49,0,5237,18,134,65,83,67,73,73,58, - 68,67,50,0,5250,19,134,65,83,67,73,73,58,68,67,51,0,5263,20,134, - 65,83,67,73,73,58,68,67,52,0,5276,21,134,65,83,67,73,73,58,78, - 65,75,0,5289,22,134,65,83,67,73,73,58,83,89,78,0,5302,23,134,65, - 83,67,73,73,58,69,84,66,0,5315,24,134,65,83,67,73,73,58,67,65, - 78,0,5328,25,134,65,83,67,73,73,58,69,77,0,5341,26,134,65,83,67, - 73,73,58,83,85,66,0,5353,27,134,65,83,67,73,73,58,69,83,67,0, - 5366,28,134,65,83,67,73,73,58,70,83,0,5379,29,134,65,83,67,73,73, - 58,71,83,0,5391,30,134,65,83,67,73,73,58,82,83,0,5403,31,134,65, - 83,67,73,73,58,85,83,0,5415,32,134,65,83,67,73,73,58,83,80,65, - 67,69,0,5427,127,134,65,83,67,73,73,58,68,69,76,0,5442,5468,147,99, - 58,108,101,116,116,101,114,63,0,1,65,1,122,2049,2944,10,5455,5491,147,99, - 58,108,111,119,101,114,99,97,115,101,63,0,1,97,1,122,2049,2944,10,5475, - 5514,147,99,58,117,112,112,101,114,99,97,115,101,63,0,1,65,1,90,2049, - 2944,10,5498,5533,147,99,58,100,105,103,105,116,63,0,1,48,1,57,2049,2944, - 10,5521,5554,147,99,58,118,105,115,105,98,108,101,63,0,1,32,1,126,2049, - 2944,10,5540,5573,147,99,58,118,111,119,101,108,63,0,2049,3702,97,101,105,111, - 117,65,69,73,79,85,0,1,5575,4,2049,4159,10,5561,5608,147,99,58,99,111, - 110,115,111,110,97,110,116,63,0,2,2049,5468,1793,5618,2049,5573,2049,2725,10,1, - 5613,1793,5626,3,2049,2445,10,1,5622,2049,67,10,5592,5637,134,87,83,0,32,9, - 10,13,0,5592,5659,147,99,58,119,104,105,116,101,115,112,97,99,101,63,0, - 1,5637,4,2049,4159,10,5642,5682,147,99,58,45,108,111,119,101,114,99,97,115, - 101,63,0,2049,5491,2049,2725,10,5665,5704,147,99,58,45,117,112,112,101,114,99, - 97,115,101,63,0,2049,5514,2049,2725,10,5687,5722,147,99,58,45,100,105,103,105, - 116,63,0,2049,5533,2049,2725,10,5709,5745,147,99,58,45,119,104,105,116,101,115, - 112,97,99,101,63,0,2049,5659,2049,2725,10,5727,5765,147,99,58,45,118,105,115, - 105,98,108,101,63,0,2049,5554,2049,2725,10,5750,5783,147,99,58,45,118,111,119, - 101,108,63,0,2049,5573,2049,2725,10,5770,5805,147,99,58,45,99,111,110,115,111, - 110,97,110,116,63,0,2049,5608,2049,2725,10,5788,5824,147,99,58,116,111,45,117, - 112,112,101,114,0,2,2049,5491,25,3,1,32,18,10,5810,5847,147,99,58,116, - 111,45,108,111,119,101,114,0,2,2049,5514,25,3,1,32,17,10,5833,5871,147, - 99,58,116,111,45,115,116,114,105,110,103,0,2049,3702,46,0,1,5873,2049,3657, - 1793,5883,16,10,1,5881,2049,2082,10,5856,5905,147,99,58,116,111,103,103,108,101, - 45,99,97,115,101,0,2,2049,5491,1793,5913,2049,5824,10,1,5910,1793,5920,2049,5847, - 10,1,5917,2049,67,10,5888,5940,147,99,58,116,111,45,110,117,109,98,101,114, - 0,2,2049,5533,1793,5949,1,48,18,10,1,5945,1793,5957,3,1,0,10,1,5953, - 2049,67,10,5925,5976,147,115,58,116,111,45,117,112,112,101,114,0,1793,5981,2049, - 5824,10,1,5978,2049,4508,10,5962,6000,147,115,58,116,111,45,108,111,119,101,114, - 0,1793,6005,2049,5847,10,1,6002,2049,4508,10,5986,6019,134,86,97,108,117,101,0, - 0,6010,6031,147,99,111,114,114,101,99,116,0,2,1,48,13,1793,6046,1,48, - 67502597,18,1,2,19,17,10,1,6037,9,10,5986,6065,147,110,58,116,111,45,115, - 116,114,105,110,103,0,1793,6119,2049,1841,2049,3480,2,4097,6019,2049,2879,1793,6093,1, - 10,20,4,1,48,17,2049,6031,2049,3388,2,2049,2588,10,1,6078,2049,2202,3,3841, - 6019,2049,2607,1793,6109,1,45,2049,3388,10,1,6104,9,2049,3354,2049,3822,2049,3657,10, - 1,6067,2049,3504,10,6050,6146,134,82,101,119,114,105,116,101,85,110,100,101,114, - 115,99,111,114,101,115,0,-1,6124,6154,147,115,117,98,0,1,95,1793,6161,1, - 32,10,1,6158,2049,2287,10,6147,6177,147,114,101,119,114,105,116,101,0,3841,6146, - 1793,6186,1,6154,2049,4508,10,1,6181,9,10,6166,6200,147,104,97,110,100,108,101, - 0,1,3766,8,10,6124,6216,159,112,114,101,102,105,120,58,39,0,2049,6177,2049, - 6200,10,6204,6233,159,112,114,101,102,105,120,58,34,0,2049,6177,2049,3728,10,6221, - 6249,147,115,58,115,112,108,105,116,0,2049,2060,2049,4087,772,2049,2060,2049,4618,1793, - 6262,17,10,1,6260,2049,2070,10,6238,6288,147,115,58,115,112,108,105,116,45,111, - 110,45,115,116,114,105,110,103,0,2049,2060,2049,4387,2049,2913,772,2049,2060,2049,4618, - 1793,6303,17,10,1,6301,2049,2070,10,6267,6321,147,115,58,114,101,112,108,97,99, - 101,0,67502597,2049,82,2049,1841,16,1793,6337,2049,6288,4,2049,1841,15,17,10,1,6329, - 2049,2070,2049,3969,2049,4010,10,6308,6358,134,83,112,108,105,116,45,79,110,0,0, - 6346,6369,147,109,97,116,99,104,63,0,3841,6358,11,10,6359,6386,147,116,101,114, - 109,105,110,97,116,101,0,1,0,67502597,2049,2926,16,10,6373,6401,147,115,116,101, - 112,0,1793,6406,2049,2913,10,1,6403,2049,2070,2049,6369,1793,6420,2,2049,108,2049,6386, - 10,1,6414,9,10,6308,6438,147,115,58,116,111,107,101,110,105,122,101,0,4097, - 6358,2049,3728,2049,1841,1,0,2049,108,1793,6465,2,2049,108,2,1793,6459,2049,6401,10, - 1,6456,2049,4028,3,10,1,6450,2049,2070,2049,1841,67502597,18,2049,2926,67502597,16,10,6424, - 6488,134,84,111,107,101,110,115,0,0,6478,6499,134,78,101,101,100,108,101,0, - 0,6489,6511,147,45,109,97,116,99,104,63,0,2,3841,6499,2049,4328,10,6500,6531, - 147,115,97,118,101,45,116,111,107,101,110,0,3841,6499,2049,6288,2049,3728,2049,3388, - 2049,2913,10,6517,6559,147,116,111,107,101,110,115,45,116,111,45,115,101,116,0, - 2049,1841,3841,6488,2049,3460,2,2049,108,1793,6575,2049,59,2049,108,10,1,6570,2049,2257, - 3,10,6424,6605,147,115,58,116,111,107,101,110,105,122,101,45,111,110,45,115, - 116,114,105,110,103,0,1793,6644,2049,3728,4097,6499,2049,1841,1,8192,17,4097,6488,3841, - 6488,2049,3480,1793,6634,2049,6511,25,3,2049,6531,1,6624,7,10,1,6624,8,2049,3728, - 2049,3388,2049,6559,10,1,6607,2049,3504,10,6581,6657,147,99,104,97,114,0,1,32, - 1793,6666,1,95,2049,3388,10,1,6661,2049,2287,1,114,1793,6679,1,13,2049,3388,10, - 1,6674,2049,2287,1,110,1793,6692,1,10,2049,3388,10,1,6687,2049,2287,1,116,1793, - 6705,1,9,2049,3388,10,1,6700,2049,2287,1,48,1793,6718,1,0,2049,3388,10,1, - 6713,2049,2287,2049,3388,10,6649,6735,147,115,116,114,105,110,103,0,2049,59,25,2049, - 3388,1,6735,7,10,6725,6752,147,116,121,112,101,0,1,99,1793,6760,4,2049,3388, - 10,1,6756,2049,2287,1,115,1793,6773,4,2049,6735,3,10,1,6768,2049,2287,1,110, - 1793,6788,4,2049,6065,2049,6735,3,10,1,6781,2049,2287,3,10,6744,6804,147,104,97, - 110,100,108,101,0,1,92,1793,6813,2049,59,2049,6657,10,1,6808,2049,2287,1,37, - 1793,6826,2049,59,2049,6752,10,1,6821,2049,2287,2049,3388,10,6581,6845,147,115,58,102, - 111,114,109,97,116,0,1793,6874,2049,3683,1793,6869,2049,3480,1793,6864,2049,59,25,2049, - 6804,1,6855,7,10,1,6855,8,3,10,1,6851,2049,2082,10,1,6847,2049,3504,10, - 6833,6890,147,115,58,99,111,110,115,116,0,1793,6895,2049,3728,10,1,6892,2049,2070, - 2049,1986,10,6879,6912,134,86,97,108,117,101,115,0,0,0,0,0,0,0,0, + 1,153,2049,1649,10,1686,1709,159,40,0,10,1704,1715,159,41,0,10,1710,1731,147, + 99,111,109,112,105,108,101,58,108,105,116,0,1,1,2049,108,2049,108,10,1716, + 1754,147,99,111,109,112,105,108,101,58,106,117,109,112,0,1,1793,2049,108,2049, + 108,10,1738,1777,147,99,111,109,112,105,108,101,58,99,97,108,108,0,1,2049, + 2049,108,2049,108,10,1761,1799,147,99,111,109,112,105,108,101,58,114,101,116,0, + 1,10,2049,108,10,1784,1818,147,99,111,109,112,105,108,105,110,103,63,0,1, + 127,15,10,1804,1834,159,112,114,101,102,105,120,58,96,0,2049,221,2049,108,10, + 1822,1847,147,104,101,114,101,0,1,3,15,10,1839,1863,159,112,114,101,102,105, + 120,58,64,0,2049,200,2049,161,15,2049,1818,1793,1879,1,3841,2049,108,2049,108,10, + 1,1872,1793,1885,15,10,1,1883,2049,67,10,1851,1902,159,112,114,101,102,105,120, + 58,33,0,2049,200,2049,161,15,2049,1818,1793,1918,1,4097,2049,108,2049,108,10,1, + 1911,1793,1924,16,10,1,1922,2049,67,10,1890,1941,147,100,58,99,114,101,97,116, + 101,0,1,134,1,0,2049,167,2049,1847,2049,1570,2049,161,16,10,1929,1965,147,118, + 97,114,60,110,62,0,2049,1941,2049,108,10,1955,1977,147,118,97,114,0,1,0, + 4,2049,1965,10,1970,1992,147,99,111,110,115,116,0,2049,1941,2049,1570,2049,161,16, + 10,1983,2008,153,116,117,99,107,0,100926722,10,2000,2018,153,111,118,101,114,0,67502597, + 10,2010,2027,153,110,105,112,0,772,10,2020,2042,153,100,114,111,112,45,112,97, + 105,114,0,771,10,2029,2052,153,63,100,117,112,0,6402,10,2044,2066,147,100,117, + 112,45,112,97,105,114,0,67502597,67502597,10,2054,2076,147,100,105,112,0,4,5,8, + 6,10,2069,2088,147,115,105,112,0,5,2,6,4,1,21,2049,2076,10,2081,2103, + 147,98,105,0,1,2088,2049,2076,8,10,2097,2116,147,98,105,42,0,1,2076,2049, + 2076,8,10,2109,2129,147,98,105,64,0,2,2049,2116,10,2122,2140,147,116,114,105, + 0,1793,2149,1,2088,2049,2076,2049,2088,10,1,2142,2049,2076,8,10,2133,2163,147,116, + 114,105,42,0,1793,2180,1793,2173,4,1,2076,2049,2076,10,1,2167,2049,2076,2049,2076, + 10,1,2165,2049,2076,8,10,2155,2194,147,116,114,105,64,0,2,2,2049,2163,10, + 2186,2208,147,119,104,105,108,101,0,1793,2220,2,2049,2076,4,25,3,1,2210,7, + 10,1,2210,8,3,10,2199,2234,147,117,110,116,105,108,0,1793,2249,2,2049,2076, + 4,1,-1,23,25,3,1,2236,7,10,1,2236,8,3,10,2225,2263,147,116,105, + 109,101,115,0,4,1793,2280,25,1,1,18,5,1,21,2049,2088,6,1,2266,7, + 10,1,2266,8,3,10,2254,2293,147,99,97,115,101,0,1793,2298,67502597,11,10,1, + 2295,2049,2076,4,1793,2310,772,8,1,-1,10,1,2305,1793,2318,3,1,0,10,1, + 2314,2049,67,25,6,3,3,10,2285,2337,147,115,58,99,97,115,101,0,1793,2343, + 67502597,2049,96,10,1,2339,2049,2076,4,1793,2355,772,8,1,-1,10,1,2350,1793,2363, + 3,1,0,10,1,2359,2049,67,25,6,3,3,10,2327,2384,159,112,114,101,102, + 105,120,58,124,0,2049,200,1793,2392,2049,161,15,10,1,2388,1793,2400,2049,163,15, + 10,1,2396,2049,2103,2049,1818,1793,2420,1793,2413,2049,134,10,1,2410,2049,2076,2049,1777, + 10,1,2408,1793,2426,8,10,1,2424,2049,67,10,2372,2439,147,84,82,85,69,0, + 1,-1,10,2431,2451,147,70,65,76,83,69,0,1,0,10,2442,2463,147,108,116, + 101,113,63,0,2049,2066,11,1793,2470,13,10,1,2468,2049,2076,22,10,2454,2485,147, + 103,116,101,113,63,0,2049,2066,11,1793,2492,14,10,1,2490,2049,2076,22,10,2476, + 2505,147,105,102,59,0,67502597,1793,2510,9,10,1,2508,2049,2076,25,6,771,10,2498, + 2526,147,45,105,102,59,0,67502597,1793,2532,2049,73,10,1,2529,2049,2076,1,-1,23, + 25,6,771,10,2518,2552,147,110,58,77,65,88,0,1,2147483647,10,2543,2564,147,110, + 58,77,73,78,0,1,-2147483648,10,2555,2578,147,110,58,122,101,114,111,63,0,1, + 0,11,10,2567,2594,147,110,58,45,122,101,114,111,63,0,1,0,12,10,2582, + 2613,147,110,58,110,101,103,97,116,105,118,101,63,0,1,0,13,10,2598,2632, + 147,110,58,112,111,115,105,116,105,118,101,63,0,1,-1,14,10,2617,2660,147, + 110,58,115,116,114,105,99,116,108,121,45,112,111,115,105,116,105,118,101,63, + 0,1,0,14,10,2636,2675,147,110,58,101,118,101,110,63,0,1,2,20,3, + 2049,2578,10,2664,2692,147,110,58,111,100,100,63,0,1,2,20,3,2049,2594,10, + 2682,2706,153,114,111,116,0,67503109,10,2699,2713,153,47,0,197652,10,2708,2722,153,109, + 111,100,0,788,10,2715,2731,147,110,111,116,0,1,-1,23,10,2724,2744,147,110, + 58,112,111,119,0,1,1,4,1793,2752,67502597,19,10,1,2749,2049,2263,772,10,2735, + 2770,147,110,58,110,101,103,97,116,101,0,1,-1,19,10,2758,2786,147,110,58, + 115,113,117,97,114,101,0,2,19,10,2774,2799,147,110,58,115,113,114,116,0, + 1,1,1793,2817,2049,2066,197652,67502597,18,1,2,197652,25,17,1,2803,7,10,1,2803, + 8,772,10,2789,2831,147,110,58,109,105,110,0,2049,2066,13,1793,2838,3,10,1, + 2836,1793,2844,772,10,1,2842,2049,67,10,2822,2858,147,110,58,109,97,120,0,2049, + 2066,14,1793,2865,3,10,1,2863,1793,2871,772,10,1,2869,2049,67,10,2849,2885,147, + 110,58,97,98,115,0,2,2049,2770,2049,2858,10,2876,2902,147,110,58,108,105,109, + 105,116,0,4,5,2049,2831,6,2049,2858,10,2891,2919,147,110,58,105,110,99,0, + 1,1,17,10,2910,2932,147,110,58,100,101,99,0,1,1,18,10,2923,2950,147, + 110,58,98,101,116,119,101,101,110,63,0,67503109,1793,2958,67503109,67503109,2049,2902,10,1, + 2953,2049,2088,11,10,2936,2976,147,118,58,105,110,99,45,98,121,0,1793,2981,15, + 17,10,1,2978,2049,2088,16,10,2964,2999,147,118,58,100,101,99,45,98,121,0, + 1793,3005,15,4,18,10,1,3001,2049,2088,16,10,2987,3020,147,118,58,105,110,99, + 0,1,1,4,2049,2976,10,3011,3035,147,118,58,100,101,99,0,1,1,4,2049, + 2999,10,3026,3052,147,118,58,108,105,109,105,116,0,5,5,2,15,6,6,2049, + 2902,4,16,10,3041,3071,147,118,58,111,110,0,2049,2439,4,16,10,3063,3085,147, + 118,58,111,102,102,0,2049,2451,4,16,10,3076,3099,147,97,108,108,111,116,0, + 1,3,2049,2976,10,3090,3118,147,118,58,112,114,101,115,101,114,118,101,0,4, + 2,15,1793,3132,1793,3127,8,10,1,3125,2049,2076,10,1,3123,2049,2076,4,16,10, + 3104,3157,147,118,58,117,112,100,97,116,101,45,117,115,105,110,103,0,4,1793, + 3164,15,4,8,10,1,3160,2049,2088,16,10,3139,3178,147,99,111,112,121,0,1793, + 3187,1,59,2049,2076,2049,62,10,1,3180,2049,2263,3,3,10,3170,3207,147,83,99, + 111,112,101,76,105,115,116,0,37243,37358,10,3194,3216,147,123,123,0,2049,1570,2, + 1,3207,2049,62,16,10,3210,3241,147,45,45,45,114,101,118,101,97,108,45,45, + 45,0,2049,1570,1,3207,2049,2919,16,10,3225,3255,147,125,125,0,1,3207,2049,59, + 4,15,11,1793,3269,3841,3207,4097,2,10,1,3264,1793,3299,3841,3207,1793,3294,1,2, + 15,2,15,1,3207,2049,2919,15,12,25,3,1,3279,7,10,1,3277,8,16,10, + 1,3273,2049,67,10,3249,3314,134,66,117,102,102,101,114,0,0,10,3304,3323,134, + 80,116,114,0,0,10,3316,3338,147,116,101,114,109,105,110,97,116,101,0,1, + 0,3841,3323,16,10,3249,3360,147,98,117,102,102,101,114,58,115,116,97,114,116, + 0,3841,3314,10,3344,3377,147,98,117,102,102,101,114,58,101,110,100,0,3841,3323, + 10,3363,3394,147,98,117,102,102,101,114,58,97,100,100,0,2049,3377,16,1,3323, + 2049,3020,2049,3338,10,3380,3418,147,98,117,102,102,101,114,58,103,101,116,0,1, + 3323,2049,3035,2049,3377,15,2049,3338,10,3404,3444,147,98,117,102,102,101,114,58,101, + 109,112,116,121,0,2049,3360,4097,3323,2049,3338,10,3428,3466,147,98,117,102,102,101, + 114,58,115,105,122,101,0,2049,3377,2049,3360,18,10,3451,3486,147,98,117,102,102, + 101,114,58,115,101,116,0,4097,3314,2049,3444,10,3472,3510,147,98,117,102,102,101, + 114,58,112,114,101,115,101,114,118,101,0,3841,3314,3841,3323,1793,3527,1793,3520,8, + 10,1,3518,2049,2076,4097,3314,10,1,3516,2049,2076,4097,3323,10,3491,3549,134,84,101, + 109,112,83,116,114,105,110,103,115,0,32,3534,3567,134,84,101,109,112,83,116, + 114,105,110,103,77,97,120,0,512,3550,3579,147,83,84,82,73,78,71,83,0, + 2049,1543,3841,3549,3841,3567,19,18,10,3568,3599,134,67,117,114,114,101,110,116,0, + 1,10,3588,3614,147,115,58,112,111,105,110,116,101,114,0,3841,3599,3841,3567,19, + 2049,3579,17,10,3601,3633,147,115,58,110,101,120,116,0,1,3599,2049,3020,3841,3599, + 3841,3549,11,1793,3649,1,0,4097,3599,10,1,3644,9,10,3568,3663,147,115,58,116, + 101,109,112,0,2,2049,82,2049,2919,2049,3614,4,2049,3178,2049,3614,2049,3633,10,3653, + 3689,147,115,58,101,109,112,116,121,0,2049,3614,2049,3633,1,0,67502597,16,10,3678, + 3708,147,115,58,115,107,105,112,0,6,1793,3716,2049,59,2049,2594,10,1,3711,2049, + 2208,2049,2932,5,10,3698,3734,147,115,58,107,101,101,112,0,2049,1818,1793,3743,1, + 3708,2049,1777,10,1,3738,9,2049,1847,1793,3753,2049,122,10,1,3750,2049,2076,2049,134, + 10,3724,3772,159,112,114,101,102,105,120,58,39,0,2049,1818,1793,3779,2049,3734,10, + 1,3776,1793,3786,2049,3663,10,1,3783,2049,67,10,3760,3801,147,115,58,99,104,111, + 112,0,2049,3663,2,2049,82,67502597,17,2049,2932,1,0,4,16,10,3791,3828,147,115, + 58,114,101,118,101,114,115,101,0,1793,3870,2,2049,3663,2049,3486,1,82,1793,3846, + 2,2049,82,17,2049,2932,10,1,3839,2049,2103,4,1793,3860,2,15,2049,3394,2049,2932, + 10,1,3853,2049,2263,3,2049,3360,2049,3663,10,1,3830,2049,3510,10,3815,3890,147,115, + 58,116,114,105,109,45,108,101,102,116,0,2049,3663,1793,3915,2049,59,1793,3902,1, + 32,11,10,1,3898,1793,3909,2049,2594,10,1,3906,2049,2103,21,10,1,3894,2049,2208, + 2049,2932,10,3875,3938,147,115,58,116,114,105,109,45,114,105,103,104,116,0,2049, + 3663,2049,3828,2049,3890,2049,3828,10,3922,3957,147,115,58,116,114,105,109,0,2049,3938, + 2049,3890,10,3947,3975,147,115,58,112,114,101,112,101,110,100,0,2049,3663,1793,3999, + 2,2049,82,17,1793,3991,2,2049,82,2049,2919,10,1,3985,2049,2076,4,2049,3178,10, + 1,3979,2049,2088,10,3962,4016,147,115,58,97,112,112,101,110,100,0,4,2049,3975, + 10,4004,4034,147,115,58,102,111,114,45,101,97,99,104,0,1793,4074,67502597,15,25, + 3,2049,2066,1793,4057,1793,4052,1,35,2049,2076,8,10,1,4046,2049,2076,10,1,4044, + 2049,2076,1793,4066,2049,2919,10,1,4063,2049,2076,1,4036,7,10,1,4036,8,771,10, + 4020,4093,147,115,58,105,110,100,101,120,45,111,102,0,4,1793,4116,2049,59,25, + 4,1793,4105,67502597,12,10,1,4102,2049,2076,4,25,3,1,4096,7,10,1,4096,2049, + 2088,1793,4127,18,2049,2932,772,10,1,4122,2049,2088,2049,82,67502597,11,1793,4141,3,1, + -1,10,1,4137,9,10,4079,4165,147,115,58,99,111,110,116,97,105,110,115,45, + 99,104,97,114,63,0,2049,4093,1,-1,12,10,4145,4178,134,83,114,99,0,0, + 4171,4186,134,84,97,114,0,0,4179,4194,134,80,97,100,0,0,4187,4200,134,73, + 0,0,4195,4206,134,70,0,0,4201,4213,134,65,116,0,0,4207,4227,147,116,101, + 114,109,105,110,97,116,101,0,1,0,3841,4194,3841,4186,2049,82,17,16,10,4214, + 4249,147,101,120,116,114,97,99,116,0,3841,4178,3841,4200,17,3841,4194,3841,4186,2049, + 82,2049,3178,10,4238,4274,147,99,111,109,112,97,114,101,0,3841,4194,3841,4186,2049, + 96,3841,4206,22,4097,4206,3841,4206,1793,4294,3841,4200,4097,4213,10,1,4289,2049,73,10, + 4263,4307,147,110,101,120,116,0,1,4200,2049,3020,10,4145,4334,147,115,58,99,111, + 110,116,97,105,110,115,45,115,116,114,105,110,103,63,0,4097,4186,4097,4178,2049, + 3689,4097,4194,1,0,4097,4200,1,0,4097,4206,3841,4178,2049,82,1793,4365,2049,4249,2049, + 4227,2049,4274,2049,4307,10,1,4356,2049,2263,3841,4206,10,4312,4393,147,115,58,105,110, + 100,101,120,45,111,102,45,115,116,114,105,110,103,0,4097,4186,4097,4178,2049,3689, + 4097,4194,1,0,4097,4200,1,0,4097,4206,1,-1,4097,4213,3841,4178,2049,82,1793,4428, + 2049,4249,2049,4227,2049,4274,2049,4307,10,1,4419,2049,2263,3841,4206,1793,4439,3841,4213,10, + 1,4436,1793,4446,1,-1,10,1,4443,2049,67,10,4372,4463,147,115,58,102,105,108, + 116,101,114,0,1793,4500,2049,3689,2049,3486,4,1793,4492,2049,2066,4,8,1793,4481,2049, + 3394,10,1,4478,1793,4487,3,10,1,4485,2049,67,10,1,4472,2049,4034,3,2049,3360, + 10,1,4465,2049,3510,10,4451,4514,147,115,58,109,97,112,0,1793,4536,2049,3689,2049, + 3486,4,1793,4528,67502597,8,2049,3394,10,1,4523,2049,4034,3,2049,3360,10,1,4516,2049, + 3510,10,4505,4553,147,115,58,115,117,98,115,116,114,0,1793,4559,17,2049,3689,10, + 1,4555,2049,2076,1793,4576,67502597,1793,4571,2049,3178,10,1,4568,2049,2076,10,1,4565,2049, + 2088,67502597,1793,4589,17,1,0,4,16,10,1,4583,2049,2076,10,4541,4605,147,115,58, + 114,105,103,104,116,0,67502597,2049,82,67502597,18,4,2049,4553,10,4594,4624,147,115,58, + 108,101,102,116,0,1,0,4,2049,4553,10,4614,4648,147,115,58,98,101,103,105, + 110,115,45,119,105,116,104,63,0,2,2049,82,1793,4655,4,10,1,4653,2049,2076, + 2049,4624,2049,96,10,4630,4680,147,115,58,101,110,100,115,45,119,105,116,104,63, + 0,2,2049,82,1793,4687,4,10,1,4685,2049,2076,2049,4605,2049,96,10,4664,4706,147, + 115,58,104,97,115,104,0,1,5381,4,1793,4717,4,1,33,19,17,10,1,4711, + 2049,4034,10,4696,4732,147,115,58,99,111,112,121,0,67502597,2049,82,2049,2919,2049,3178, + 10,4722,4752,147,115,58,68,73,71,73,84,83,0,2049,3708,48,49,50,51,52, + 53,54,55,56,57,0,1,4754,10,4740,4789,147,115,58,65,83,67,73,73,45, + 76,79,87,69,82,67,65,83,69,0,2049,3708,97,98,99,100,101,102,103,104, + 105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,0,1, + 4791,10,4768,4842,147,115,58,65,83,67,73,73,45,85,80,80,69,82,67,65, + 83,69,0,2049,3708,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79, + 80,81,82,83,84,85,86,87,88,89,90,0,1,4844,10,4821,4893,147,115,58, + 65,83,67,73,73,45,76,69,84,84,69,82,83,0,2049,3708,97,98,99,100, + 101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120, + 121,122,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82, + 83,84,85,86,87,88,89,90,0,1,4895,10,4874,4968,147,115,58,80,85,78, + 67,84,85,65,84,73,79,78,0,2049,3708,95,33,34,35,36,37,38,39,40, + 41,42,43,44,45,46,47,58,59,60,61,62,63,64,91,92,93,94,96,123, + 124,125,126,0,1,4970,1,95,67502597,16,10,4951,5026,134,115,58,87,72,73,84, + 69,83,80,65,67,69,0,9,10,13,0,5010,0,134,65,83,67,73,73,58, + 78,85,76,0,5030,1,134,65,83,67,73,73,58,83,79,72,0,5043,2,134, + 65,83,67,73,73,58,83,84,88,0,5056,3,134,65,83,67,73,73,58,69, + 84,88,0,5069,4,134,65,83,67,73,73,58,69,79,84,0,5082,5,134,65, + 83,67,73,73,58,69,78,81,0,5095,6,134,65,83,67,73,73,58,65,67, + 75,0,5108,7,134,65,83,67,73,73,58,66,69,76,0,5121,8,134,65,83, + 67,73,73,58,66,83,0,5134,9,134,65,83,67,73,73,58,72,84,0,5146, + 10,134,65,83,67,73,73,58,76,70,0,5158,11,134,65,83,67,73,73,58, + 86,84,0,5170,12,134,65,83,67,73,73,58,70,70,0,5182,13,134,65,83, + 67,73,73,58,67,82,0,5194,14,134,65,83,67,73,73,58,83,79,0,5206, + 15,134,65,83,67,73,73,58,83,73,0,5218,16,134,65,83,67,73,73,58, + 68,76,69,0,5230,17,134,65,83,67,73,73,58,68,67,49,0,5243,18,134, + 65,83,67,73,73,58,68,67,50,0,5256,19,134,65,83,67,73,73,58,68, + 67,51,0,5269,20,134,65,83,67,73,73,58,68,67,52,0,5282,21,134,65, + 83,67,73,73,58,78,65,75,0,5295,22,134,65,83,67,73,73,58,83,89, + 78,0,5308,23,134,65,83,67,73,73,58,69,84,66,0,5321,24,134,65,83, + 67,73,73,58,67,65,78,0,5334,25,134,65,83,67,73,73,58,69,77,0, + 5347,26,134,65,83,67,73,73,58,83,85,66,0,5359,27,134,65,83,67,73, + 73,58,69,83,67,0,5372,28,134,65,83,67,73,73,58,70,83,0,5385,29, + 134,65,83,67,73,73,58,71,83,0,5397,30,134,65,83,67,73,73,58,82, + 83,0,5409,31,134,65,83,67,73,73,58,85,83,0,5421,32,134,65,83,67, + 73,73,58,83,80,65,67,69,0,5433,127,134,65,83,67,73,73,58,68,69, + 76,0,5448,5474,147,99,58,108,101,116,116,101,114,63,0,1,65,1,122,2049, + 2950,10,5461,5497,147,99,58,108,111,119,101,114,99,97,115,101,63,0,1,97, + 1,122,2049,2950,10,5481,5520,147,99,58,117,112,112,101,114,99,97,115,101,63, + 0,1,65,1,90,2049,2950,10,5504,5539,147,99,58,100,105,103,105,116,63,0, + 1,48,1,57,2049,2950,10,5527,5560,147,99,58,118,105,115,105,98,108,101,63, + 0,1,32,1,126,2049,2950,10,5546,5579,147,99,58,118,111,119,101,108,63,0, + 2049,3708,97,101,105,111,117,65,69,73,79,85,0,1,5581,4,2049,4165,10,5567, + 5614,147,99,58,99,111,110,115,111,110,97,110,116,63,0,2,2049,5474,1793,5624, + 2049,5579,2049,2731,10,1,5619,1793,5632,3,2049,2451,10,1,5628,2049,67,10,5598,5643, + 134,87,83,0,32,9,10,13,0,5598,5665,147,99,58,119,104,105,116,101,115, + 112,97,99,101,63,0,1,5643,4,2049,4165,10,5648,5688,147,99,58,45,108,111, + 119,101,114,99,97,115,101,63,0,2049,5497,2049,2731,10,5671,5710,147,99,58,45, + 117,112,112,101,114,99,97,115,101,63,0,2049,5520,2049,2731,10,5693,5728,147,99, + 58,45,100,105,103,105,116,63,0,2049,5539,2049,2731,10,5715,5751,147,99,58,45, + 119,104,105,116,101,115,112,97,99,101,63,0,2049,5665,2049,2731,10,5733,5771,147, + 99,58,45,118,105,115,105,98,108,101,63,0,2049,5560,2049,2731,10,5756,5789,147, + 99,58,45,118,111,119,101,108,63,0,2049,5579,2049,2731,10,5776,5811,147,99,58, + 45,99,111,110,115,111,110,97,110,116,63,0,2049,5614,2049,2731,10,5794,5830,147, + 99,58,116,111,45,117,112,112,101,114,0,2,2049,5497,25,3,1,32,18,10, + 5816,5853,147,99,58,116,111,45,108,111,119,101,114,0,2,2049,5520,25,3,1, + 32,17,10,5839,5877,147,99,58,116,111,45,115,116,114,105,110,103,0,2049,3708, + 46,0,1,5879,2049,3663,1793,5889,16,10,1,5887,2049,2088,10,5862,5911,147,99,58, + 116,111,103,103,108,101,45,99,97,115,101,0,2,2049,5497,1793,5919,2049,5830,10, + 1,5916,1793,5926,2049,5853,10,1,5923,2049,67,10,5894,5946,147,99,58,116,111,45, + 110,117,109,98,101,114,0,2,2049,5539,1793,5955,1,48,18,10,1,5951,1793,5963, + 3,1,0,10,1,5959,2049,67,10,5931,5982,147,115,58,116,111,45,117,112,112, + 101,114,0,1793,5987,2049,5830,10,1,5984,2049,4514,10,5968,6006,147,115,58,116,111, + 45,108,111,119,101,114,0,1793,6011,2049,5853,10,1,6008,2049,4514,10,5992,6025,134, + 86,97,108,117,101,0,0,6016,6037,147,99,111,114,114,101,99,116,0,2,1, + 48,13,1793,6052,1,48,67502597,18,1,2,19,17,10,1,6043,9,10,5992,6071,147, + 110,58,116,111,45,115,116,114,105,110,103,0,1793,6125,2049,1847,2049,3486,2,4097, + 6025,2049,2885,1793,6099,1,10,20,4,1,48,17,2049,6037,2049,3394,2,2049,2594,10, + 1,6084,2049,2208,3,3841,6025,2049,2613,1793,6115,1,45,2049,3394,10,1,6110,9,2049, + 3360,2049,3828,2049,3663,10,1,6073,2049,3510,10,6056,6152,134,82,101,119,114,105,116, + 101,85,110,100,101,114,115,99,111,114,101,115,0,-1,6130,6160,147,115,117,98, + 0,1,95,1793,6167,1,32,10,1,6164,2049,2293,10,6153,6183,147,114,101,119,114, + 105,116,101,0,3841,6152,1793,6192,1,6160,2049,4514,10,1,6187,9,10,6172,6206,147, + 104,97,110,100,108,101,0,1,3772,8,10,6130,6222,159,112,114,101,102,105,120, + 58,39,0,2049,6183,2049,6206,10,6210,6239,159,112,114,101,102,105,120,58,34,0, + 2049,6183,2049,3734,10,6227,6255,147,115,58,115,112,108,105,116,0,2049,2066,2049,4093, + 772,2049,2066,2049,4624,1793,6268,17,10,1,6266,2049,2076,10,6244,6294,147,115,58,115, + 112,108,105,116,45,111,110,45,115,116,114,105,110,103,0,2049,2066,2049,4393,2049, + 2919,772,2049,2066,2049,4624,1793,6309,17,10,1,6307,2049,2076,10,6273,6327,147,115,58, + 114,101,112,108,97,99,101,0,67502597,2049,82,2049,1847,16,1793,6343,2049,6294,4,2049, + 1847,15,17,10,1,6335,2049,2076,2049,3975,2049,4016,10,6314,6364,134,83,112,108,105, + 116,45,79,110,0,0,6352,6375,147,109,97,116,99,104,63,0,3841,6364,11,10, + 6365,6392,147,116,101,114,109,105,110,97,116,101,0,1,0,67502597,2049,2932,16,10, + 6379,6407,147,115,116,101,112,0,1793,6412,2049,2919,10,1,6409,2049,2076,2049,6375,1793, + 6426,2,2049,108,2049,6392,10,1,6420,9,10,6314,6444,147,115,58,116,111,107,101, + 110,105,122,101,0,4097,6364,2049,3734,2049,1847,1,0,2049,108,1793,6471,2,2049,108, + 2,1793,6465,2049,6407,10,1,6462,2049,4034,3,10,1,6456,2049,2076,2049,1847,67502597,18, + 2049,2932,67502597,16,10,6430,6494,134,84,111,107,101,110,115,0,0,6484,6505,134,78, + 101,101,100,108,101,0,0,6495,6517,147,45,109,97,116,99,104,63,0,2,3841, + 6505,2049,4334,10,6506,6537,147,115,97,118,101,45,116,111,107,101,110,0,3841,6505, + 2049,6294,2049,3734,2049,3394,2049,2919,10,6523,6565,147,116,111,107,101,110,115,45,116, + 111,45,115,101,116,0,2049,1847,3841,6494,2049,3466,2,2049,108,1793,6581,2049,59,2049, + 108,10,1,6576,2049,2263,3,10,6430,6611,147,115,58,116,111,107,101,110,105,122, + 101,45,111,110,45,115,116,114,105,110,103,0,1793,6650,2049,3734,4097,6505,2049,1847, + 1,8192,17,4097,6494,3841,6494,2049,3486,1793,6640,2049,6517,25,3,2049,6537,1,6630,7, + 10,1,6630,8,2049,3734,2049,3394,2049,6565,10,1,6613,2049,3510,10,6587,6663,147,99, + 104,97,114,0,1,32,1793,6672,1,95,2049,3394,10,1,6667,2049,2293,1,114,1793, + 6685,1,13,2049,3394,10,1,6680,2049,2293,1,110,1793,6698,1,10,2049,3394,10,1, + 6693,2049,2293,1,116,1793,6711,1,9,2049,3394,10,1,6706,2049,2293,1,48,1793,6724, + 1,0,2049,3394,10,1,6719,2049,2293,2049,3394,10,6655,6741,147,115,116,114,105,110, + 103,0,2049,59,25,2049,3394,1,6741,7,10,6731,6758,147,116,121,112,101,0,1, + 99,1793,6766,4,2049,3394,10,1,6762,2049,2293,1,115,1793,6779,4,2049,6741,3,10, + 1,6774,2049,2293,1,110,1793,6794,4,2049,6071,2049,6741,3,10,1,6787,2049,2293,3, + 10,6750,6810,147,104,97,110,100,108,101,0,1,92,1793,6819,2049,59,2049,6663,10, + 1,6814,2049,2293,1,37,1793,6832,2049,59,2049,6758,10,1,6827,2049,2293,2049,3394,10, + 6587,6851,147,115,58,102,111,114,109,97,116,0,1793,6880,2049,3689,1793,6875,2049,3486, + 1793,6870,2049,59,25,2049,6810,1,6861,7,10,1,6861,8,3,10,1,6857,2049,2088, + 10,1,6853,2049,3510,10,6839,6896,147,115,58,99,111,110,115,116,0,1793,6901,2049, + 3734,10,1,6898,2049,2076,2049,1992,10,6885,6918,134,86,97,108,117,101,115,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,6902,6948,147,102,114,111,109,0,2049,82,2,1793,6967,1793,6960,1,6912,17,16, - 10,1,6955,2049,2082,2049,2926,10,1,6953,2049,2257,3,10,6940,6979,147,116,111,0, - 2,2049,82,1793,6997,2049,59,1,97,18,2049,2913,1,6912,17,15,4,10,1,6984, - 2049,2257,3,10,6879,7014,147,114,101,111,114,100,101,114,0,1793,7019,2049,6948,10, - 1,7016,2049,2070,2049,6979,10,7003,7035,147,99,117,114,114,121,0,2049,1841,1793,7047, - 4,2049,1725,2049,1771,2049,1793,10,1,7039,2049,2070,10,7026,7060,147,100,111,101,115, - 0,2049,1588,4,2049,7035,2049,1570,2049,161,16,1,147,2049,1649,10,7052,7089,147,100, - 58,102,111,114,45,101,97,99,104,0,1,2,1793,7117,15,25,2049,2060,1793,7109, - 1793,7104,4,8,10,1,7101,2049,2070,10,1,7099,2049,2070,1,7093,7,10,1,7093, - 8,3,10,7075,7137,147,100,58,108,111,111,107,117,112,45,120,116,0,1,0, - 4,1793,7163,2049,2060,2049,161,15,11,1793,7156,4,1,2021,2049,2070,10,1,7150,1, - 11,2049,67,10,1,7142,2049,7089,3,10,7122,7185,147,97,114,114,97,121,58,108, - 101,110,103,116,104,0,15,10,7169,7212,147,97,114,114,97,121,58,99,111,117, - 110,116,101,100,45,114,101,115,117,108,116,115,0,8,2049,1841,1793,7225,2,2049, - 108,1,108,2049,2257,10,1,7217,2049,2070,10,7187,7251,147,97,114,114,97,121,58, - 102,114,111,109,45,115,116,114,105,110,103,0,2049,1841,1793,7270,2,2049,82,2049, - 108,1793,7265,2049,108,10,1,7262,2049,4028,10,1,7255,2049,2070,10,7230,7280,134,81, - 0,0,7230,7299,147,97,114,114,97,121,58,102,111,114,45,101,97,99,104,0, - 1,7280,1793,7329,4097,7280,2049,59,1793,7323,2049,59,4,1793,7318,3841,7280,8,10,1, - 7314,2049,2070,10,1,7309,2049,2257,3,10,1,7303,2049,3112,10,7281,7347,147,97,114, - 114,97,121,58,100,117,112,0,2049,1841,1793,7365,2,15,2049,108,1793,7360,2049,108, - 10,1,7357,2049,7299,10,1,7351,2049,2070,10,7334,7386,147,97,114,114,97,121,58, - 102,105,108,116,101,114,0,1793,7414,67502597,1793,7393,8,10,1,7391,2049,2070,4,1793, - 7403,2049,108,10,1,7400,1793,7409,3,10,1,7407,2049,67,10,1,7388,2049,7035,2049, - 1841,1793,7429,67502597,15,2049,108,2049,7299,10,1,7422,2049,2070,2049,1841,67502597,18,2049,2926, - 67502597,16,10,7370,7447,134,70,0,0,7370,7467,147,97,114,114,97,121,58,99,111, - 110,116,97,105,110,115,63,0,1,7447,2049,3079,1793,7481,67502597,11,3841,7447,22,4097, - 7447,10,1,7473,2049,7299,3,3841,7447,10,7448,7515,147,97,114,114,97,121,58,99, - 111,110,116,97,105,110,115,45,115,116,114,105,110,103,63,0,1,7447,2049,3079, - 1793,7530,67502597,2049,96,3841,7447,22,4097,7447,10,1,7521,2049,7299,3,3841,7447,10,7489, - 7551,147,97,114,114,97,121,58,109,97,112,0,1793,7557,8,2049,108,10,1,7553, - 2049,7035,2049,1841,1793,7572,67502597,15,2049,108,2049,7299,10,1,7565,2049,2070,10,7538,7594, - 147,97,114,114,97,121,58,114,101,118,101,114,115,101,0,2049,1841,1793,7628,2049, - 59,1793,7606,17,2049,2926,10,1,7602,2049,2082,2,2049,108,1793,7622,2,15,2049,108, - 2049,2926,10,1,7615,2049,2257,3,10,1,7598,2049,2070,10,7577,7646,147,97,114,114, - 97,121,58,110,116,104,0,17,2049,2913,10,7633,7666,147,97,114,114,97,121,58, - 114,101,100,117,99,101,0,1793,7670,4,10,1,7668,2049,2070,2049,7299,10,7650,7691, - 147,97,114,114,97,121,58,109,97,107,101,0,2049,7212,2049,7594,10,7677,7701,159, - 123,0,1,288,2049,159,1,1556,2049,147,1,288,2049,159,10,7696,7719,159,125,0, - 1,305,2049,159,1,2070,2049,147,1,1556,2049,147,1,13,2049,153,1,41,2049,153, - 1,2926,2049,147,1,305,2049,159,1,7691,2049,147,10,7714,7758,134,73,48,0,108, - 105,0,7752,7767,134,73,49,0,105,105,0,7761,7776,134,73,50,0,46,46,0, - 7770,7785,134,73,51,0,46,46,0,7779,7798,147,111,112,99,111,100,101,0,2049, - 3702,46,46,0,1,7800,1793,7810,1,0,10,1,7807,2049,2331,2049,3702,108,105,0, - 1,7816,1793,7826,1,1,10,1,7823,2049,2331,2049,3702,100,117,0,1,7832,1793,7842, - 1,2,10,1,7839,2049,2331,2049,3702,100,114,0,1,7848,1793,7858,1,3,10,1, - 7855,2049,2331,2049,3702,115,119,0,1,7864,1793,7874,1,4,10,1,7871,2049,2331,2049, - 3702,112,117,0,1,7880,1793,7890,1,5,10,1,7887,2049,2331,2049,3702,112,111,0, - 1,7896,1793,7906,1,6,10,1,7903,2049,2331,2049,3702,106,117,0,1,7912,1793,7922, - 1,7,10,1,7919,2049,2331,2049,3702,99,97,0,1,7928,1793,7938,1,8,10,1, - 7935,2049,2331,2049,3702,99,99,0,1,7944,1793,7954,1,9,10,1,7951,2049,2331,2049, - 3702,114,101,0,1,7960,1793,7970,1,10,10,1,7967,2049,2331,2049,3702,101,113,0, - 1,7976,1793,7986,1,11,10,1,7983,2049,2331,2049,3702,110,101,0,1,7992,1793,8002, - 1,12,10,1,7999,2049,2331,2049,3702,108,116,0,1,8008,1793,8018,1,13,10,1, - 8015,2049,2331,2049,3702,103,116,0,1,8024,1793,8034,1,14,10,1,8031,2049,2331,2049, - 3702,102,101,0,1,8040,1793,8050,1,15,10,1,8047,2049,2331,2049,3702,115,116,0, - 1,8056,1793,8066,1,16,10,1,8063,2049,2331,2049,3702,97,100,0,1,8072,1793,8082, - 1,17,10,1,8079,2049,2331,2049,3702,115,117,0,1,8088,1793,8098,1,18,10,1, - 8095,2049,2331,2049,3702,109,117,0,1,8104,1793,8114,1,19,10,1,8111,2049,2331,2049, - 3702,100,105,0,1,8120,1793,8130,1,20,10,1,8127,2049,2331,2049,3702,97,110,0, - 1,8136,1793,8146,1,21,10,1,8143,2049,2331,2049,3702,111,114,0,1,8152,1793,8162, - 1,22,10,1,8159,2049,2331,2049,3702,120,111,0,1,8168,1793,8178,1,23,10,1, - 8175,2049,2331,2049,3702,115,104,0,1,8184,1793,8194,1,24,10,1,8191,2049,2331,2049, - 3702,122,114,0,1,8200,1793,8210,1,25,10,1,8207,2049,2331,2049,3702,101,110,0, - 1,8216,1793,8226,1,26,10,1,8223,2049,2331,2049,3702,105,101,0,1,8232,1793,8242, - 1,27,10,1,8239,2049,2331,2049,3702,105,113,0,1,8248,1793,8258,1,28,10,1, - 8255,2049,2331,2049,3702,105,105,0,1,8264,1793,8274,1,29,10,1,8271,2049,2331,3, - 1,0,10,7788,8290,147,112,97,99,107,0,1,7758,2049,7798,1,7767,2049,7798,1, - 7776,2049,7798,1,7785,2049,7798,1,-24,24,4,1,-16,24,17,4,1,-8,24,17, - 4,17,10,7714,8327,147,105,0,2,1,7758,1,2,2049,3172,1,2,17,2,1, - 7767,1,2,2049,3172,1,2,17,2,1,7776,1,2,2049,3172,1,2,17,1,7785, - 1,2,2049,3172,2049,8290,2049,108,10,8322,8373,147,100,0,2049,108,10,8368,8381,147, - 114,0,2049,200,2049,161,15,2049,108,10,8376,8396,159,97,115,123,0,3841,127,1, - 127,2049,3079,10,8389,8410,159,125,97,115,0,4097,127,10,8403,8429,147,99,117,114, - 114,101,110,116,45,108,105,110,101,0,2049,3573,1,1025,18,10,8413,8451,147,99, - 111,117,110,116,45,116,111,107,101,110,115,0,1793,8457,1,32,11,10,1,8453, - 2049,4457,2049,82,10,8435,8478,147,110,101,120,116,45,116,111,107,101,110,0,1, - 32,2049,6249,10,8464,8501,147,112,114,111,99,101,115,115,45,116,111,107,101,110, - 115,0,1793,8527,2049,8478,4,1793,8520,2,2049,82,2049,2588,1,367,1,11,2049,67, - 10,1,8508,2049,2070,2049,2913,10,1,8503,2049,2257,2049,367,10,8403,8548,147,115,58, - 101,118,97,108,117,97,116,101,0,2049,8429,2049,4726,2049,8429,2,2049,8451,2049,8501, - 10,8534,8566,134,76,80,0,0,8560,8576,134,73,110,100,101,120,0,0,0,0, + 0,0,0,0,0,0,0,6908,6954,147,102,114,111,109,0,2049,82,2,1793,6973, + 1793,6966,1,6918,17,16,10,1,6961,2049,2088,2049,2932,10,1,6959,2049,2263,3,10, + 6946,6985,147,116,111,0,2,2049,82,1793,7003,2049,59,1,97,18,2049,2919,1,6918, + 17,15,4,10,1,6990,2049,2263,3,10,6885,7020,147,114,101,111,114,100,101,114, + 0,1793,7025,2049,6954,10,1,7022,2049,2076,2049,6985,10,7009,7041,147,99,117,114,114, + 121,0,2049,1847,1793,7053,4,2049,1731,2049,1777,2049,1799,10,1,7045,2049,2076,10,7032, + 7066,147,100,111,101,115,0,2049,1588,4,2049,7041,2049,1570,2049,161,16,1,147,2049, + 1649,10,7058,7095,147,100,58,102,111,114,45,101,97,99,104,0,1,2,1793,7123, + 15,25,2049,2066,1793,7115,1793,7110,4,8,10,1,7107,2049,2076,10,1,7105,2049,2076, + 1,7099,7,10,1,7099,8,3,10,7081,7143,147,100,58,108,111,111,107,117,112, + 45,120,116,0,1,0,4,1793,7169,2049,2066,2049,161,15,11,1793,7162,4,1,2027, + 2049,2076,10,1,7156,1,11,2049,67,10,1,7148,2049,7095,3,10,7128,7191,147,97, + 114,114,97,121,58,108,101,110,103,116,104,0,15,10,7175,7218,147,97,114,114, + 97,121,58,99,111,117,110,116,101,100,45,114,101,115,117,108,116,115,0,8, + 2049,1847,1793,7231,2,2049,108,1,108,2049,2263,10,1,7223,2049,2076,10,7193,7257,147, + 97,114,114,97,121,58,102,114,111,109,45,115,116,114,105,110,103,0,2049,1847, + 1793,7276,2,2049,82,2049,108,1793,7271,2049,108,10,1,7268,2049,4034,10,1,7261,2049, + 2076,10,7236,7286,134,81,0,0,7236,7305,147,97,114,114,97,121,58,102,111,114, + 45,101,97,99,104,0,1,7286,1793,7335,4097,7286,2049,59,1793,7329,2049,59,4,1793, + 7324,3841,7286,8,10,1,7320,2049,2076,10,1,7315,2049,2263,3,10,1,7309,2049,3118, + 10,7287,7353,147,97,114,114,97,121,58,100,117,112,0,2049,1847,1793,7371,2,15, + 2049,108,1793,7366,2049,108,10,1,7363,2049,7305,10,1,7357,2049,2076,10,7340,7392,147, + 97,114,114,97,121,58,102,105,108,116,101,114,0,1793,7420,67502597,1793,7399,8,10, + 1,7397,2049,2076,4,1793,7409,2049,108,10,1,7406,1793,7415,3,10,1,7413,2049,67, + 10,1,7394,2049,7041,2049,1847,1793,7435,67502597,15,2049,108,2049,7305,10,1,7428,2049,2076, + 2049,1847,67502597,18,2049,2932,67502597,16,10,7376,7453,134,70,0,0,7376,7473,147,97,114, + 114,97,121,58,99,111,110,116,97,105,110,115,63,0,1,7453,2049,3085,1793,7487, + 67502597,11,3841,7453,22,4097,7453,10,1,7479,2049,7305,3,3841,7453,10,7454,7521,147,97, + 114,114,97,121,58,99,111,110,116,97,105,110,115,45,115,116,114,105,110,103, + 63,0,1,7453,2049,3085,1793,7536,67502597,2049,96,3841,7453,22,4097,7453,10,1,7527,2049, + 7305,3,3841,7453,10,7495,7557,147,97,114,114,97,121,58,109,97,112,0,1793,7563, + 8,2049,108,10,1,7559,2049,7041,2049,1847,1793,7578,67502597,15,2049,108,2049,7305,10,1, + 7571,2049,2076,10,7544,7600,147,97,114,114,97,121,58,114,101,118,101,114,115,101, + 0,2049,1847,1793,7634,2049,59,1793,7612,17,2049,2932,10,1,7608,2049,2088,2,2049,108, + 1793,7628,2,15,2049,108,2049,2932,10,1,7621,2049,2263,3,10,1,7604,2049,2076,10, + 7583,7652,147,97,114,114,97,121,58,110,116,104,0,17,2049,2919,10,7639,7672,147, + 97,114,114,97,121,58,114,101,100,117,99,101,0,1793,7676,4,10,1,7674,2049, + 2076,2049,7305,10,7656,7697,147,97,114,114,97,121,58,109,97,107,101,0,2049,7218, + 2049,7600,10,7683,7707,159,123,0,1,288,2049,159,1,1556,2049,147,1,288,2049,159, + 10,7702,7725,159,125,0,1,305,2049,159,1,2076,2049,147,1,1556,2049,147,1,13, + 2049,153,1,41,2049,153,1,2932,2049,147,1,305,2049,159,1,7697,2049,147,10,7720, + 7764,134,73,48,0,108,105,0,7758,7773,134,73,49,0,105,105,0,7767,7782,134, + 73,50,0,46,46,0,7776,7791,134,73,51,0,46,46,0,7785,7804,147,111,112, + 99,111,100,101,0,2049,3708,46,46,0,1,7806,1793,7816,1,0,10,1,7813,2049, + 2337,2049,3708,108,105,0,1,7822,1793,7832,1,1,10,1,7829,2049,2337,2049,3708,100, + 117,0,1,7838,1793,7848,1,2,10,1,7845,2049,2337,2049,3708,100,114,0,1,7854, + 1793,7864,1,3,10,1,7861,2049,2337,2049,3708,115,119,0,1,7870,1793,7880,1,4, + 10,1,7877,2049,2337,2049,3708,112,117,0,1,7886,1793,7896,1,5,10,1,7893,2049, + 2337,2049,3708,112,111,0,1,7902,1793,7912,1,6,10,1,7909,2049,2337,2049,3708,106, + 117,0,1,7918,1793,7928,1,7,10,1,7925,2049,2337,2049,3708,99,97,0,1,7934, + 1793,7944,1,8,10,1,7941,2049,2337,2049,3708,99,99,0,1,7950,1793,7960,1,9, + 10,1,7957,2049,2337,2049,3708,114,101,0,1,7966,1793,7976,1,10,10,1,7973,2049, + 2337,2049,3708,101,113,0,1,7982,1793,7992,1,11,10,1,7989,2049,2337,2049,3708,110, + 101,0,1,7998,1793,8008,1,12,10,1,8005,2049,2337,2049,3708,108,116,0,1,8014, + 1793,8024,1,13,10,1,8021,2049,2337,2049,3708,103,116,0,1,8030,1793,8040,1,14, + 10,1,8037,2049,2337,2049,3708,102,101,0,1,8046,1793,8056,1,15,10,1,8053,2049, + 2337,2049,3708,115,116,0,1,8062,1793,8072,1,16,10,1,8069,2049,2337,2049,3708,97, + 100,0,1,8078,1793,8088,1,17,10,1,8085,2049,2337,2049,3708,115,117,0,1,8094, + 1793,8104,1,18,10,1,8101,2049,2337,2049,3708,109,117,0,1,8110,1793,8120,1,19, + 10,1,8117,2049,2337,2049,3708,100,105,0,1,8126,1793,8136,1,20,10,1,8133,2049, + 2337,2049,3708,97,110,0,1,8142,1793,8152,1,21,10,1,8149,2049,2337,2049,3708,111, + 114,0,1,8158,1793,8168,1,22,10,1,8165,2049,2337,2049,3708,120,111,0,1,8174, + 1793,8184,1,23,10,1,8181,2049,2337,2049,3708,115,104,0,1,8190,1793,8200,1,24, + 10,1,8197,2049,2337,2049,3708,122,114,0,1,8206,1793,8216,1,25,10,1,8213,2049, + 2337,2049,3708,101,110,0,1,8222,1793,8232,1,26,10,1,8229,2049,2337,2049,3708,105, + 101,0,1,8238,1793,8248,1,27,10,1,8245,2049,2337,2049,3708,105,113,0,1,8254, + 1793,8264,1,28,10,1,8261,2049,2337,2049,3708,105,105,0,1,8270,1793,8280,1,29, + 10,1,8277,2049,2337,3,1,0,10,7794,8296,147,112,97,99,107,0,1,7764,2049, + 7804,1,7773,2049,7804,1,7782,2049,7804,1,7791,2049,7804,1,-24,24,4,1,-16,24, + 17,4,1,-8,24,17,4,17,10,7720,8333,147,105,0,2,1,7764,1,2,2049, + 3178,1,2,17,2,1,7773,1,2,2049,3178,1,2,17,2,1,7782,1,2,2049, + 3178,1,2,17,1,7791,1,2,2049,3178,2049,8296,2049,108,10,8328,8379,147,100,0, + 2049,108,10,8374,8387,147,114,0,2049,200,2049,161,15,2049,108,10,8382,8402,159,97, + 115,123,0,3841,127,1,127,2049,3085,10,8395,8416,159,125,97,115,0,4097,127,10, + 8409,8435,147,99,117,114,114,101,110,116,45,108,105,110,101,0,2049,3579,1,1025, + 18,10,8419,8457,147,99,111,117,110,116,45,116,111,107,101,110,115,0,1793,8463, + 1,32,11,10,1,8459,2049,4463,2049,82,10,8441,8484,147,110,101,120,116,45,116, + 111,107,101,110,0,1,32,2049,6255,10,8470,8507,147,112,114,111,99,101,115,115, + 45,116,111,107,101,110,115,0,1793,8533,2049,8484,4,1793,8526,2,2049,82,2049,2594, + 1,367,1,11,2049,67,10,1,8514,2049,2076,2049,2919,10,1,8509,2049,2263,2049,367, + 10,8409,8554,147,115,58,101,118,97,108,117,97,116,101,0,2049,8435,2049,4732,2049, + 8435,2,2049,8457,2049,8507,10,8540,8574,134,70,108,97,103,0,0,8566,8586,147,99, + 111,109,112,97,114,101,0,67440386,184946434,10,8575,8599,147,108,101,110,103,116,104,0, + 659202,10,8589,8609,147,110,101,120,116,0,17043713,1,1,2577,10,8601,8627,147,110,111, + 116,45,101,113,117,97,108,0,50529030,2561,0,10,8614,8639,147,108,111,111,112,0, + 524549,8609,2049,8586,18157313,8574,8574,16,420610310,1,1,8639,7,10,8540,8666,147,97,114,114, + 97,121,58,101,113,63,0,1048833,-1,8574,2049,8586,151066369,-1,8627,2049,8599,2049,8639,251724547, + 8574,10,8653,8695,147,97,114,114,97,121,58,45,101,113,63,0,2049,8666,2049,2731, + 10,8681,8706,134,76,80,0,0,8700,8716,134,73,110,100,101,120,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,8567,8712,147,110,101,120,116,0,3841,8566,1,8576,17,2049,3014, - 10,8704,8728,147,112,114,101,112,0,1,8566,2049,3014,1,0,3841,8566,1,8576,17, - 16,10,8720,8749,147,100,111,110,101,0,1,8566,2049,3029,10,8534,8759,147,73,0, - 3841,8566,1,8576,17,15,10,8754,8771,147,74,0,3841,8566,1,8576,17,2049,2926,15, - 10,8766,8785,147,75,0,3841,8566,1,8576,17,1,2,18,15,10,8780,8816,147,116, - 105,109,101,115,60,119,105,116,104,45,105,110,100,101,120,62,0,2049,8728,4, - 1793,8836,25,2049,2926,5,1,21,2049,2082,6,2049,8712,1,8821,7,10,1,8821,8, - 3,2049,8749,10,8795,8851,159,104,111,111,107,0,1,1793,2049,108,2049,1841,2049,2913, - 2049,108,10,8843,8874,147,115,101,116,45,104,111,111,107,0,2049,2913,16,10,8862, - 8888,147,117,110,104,111,111,107,0,2049,2913,2,2049,2913,4,16,10,8878,8912,147, - 105,111,58,101,110,117,109,101,114,97,116,101,0,27,10,8896,8926,147,105,111, - 58,113,117,101,114,121,0,28,10,8914,8941,147,105,111,58,105,110,118,111,107, - 101,0,29,10,8928,8951,134,83,108,111,116,0,0,8928,8967,147,105,111,58,115, - 99,97,110,45,102,111,114,0,1,-1,4097,8951,2049,8912,1793,8993,2049,8759,2049,8926, - 772,67502597,11,1793,8989,2049,8759,4097,8951,10,1,8984,9,10,1,8975,2049,8816,3,3841, - 8951,10,8952,9010,147,99,58,112,117,116,0,1793,9012,1,0,2049,8941,10,9001,9023, - 147,110,108,0,1,10,2049,9010,10,9017,9034,147,115,112,0,1,32,2049,9010,10, - 9028,9046,147,116,97,98,0,1,9,2049,9010,10,9039,9060,147,115,58,112,117,116, - 0,1,9010,2049,4028,10,9051,9074,147,110,58,112,117,116,0,2049,6065,2049,9060,10, - 9065,9088,147,114,101,115,101,116,0,2049,1556,25,5,3,6,1,1,18,1,9090, - 7,10,9079,9115,147,100,117,109,112,45,115,116,97,99,107,0,2049,1556,25,3, - 5,2049,9115,6,2,2049,9074,2049,9034,10,9101,9137,147,70,82,69,69,0,2049,3573, - 1,1025,18,2049,1841,18,10,9129,9156,134,105,111,58,88,56,54,0,0,9146,9169, - 147,105,100,101,110,116,105,102,121,0,3841,9156,2049,2572,1793,9236,1,2000,2049,8967, - 2,2049,2607,1793,9224,3,2049,3702,73,79,32,68,69,86,73,67,69,32,84,89, - 80,69,32,50,48,48,48,32,78,79,84,32,70,79,85,78,68,0,1,9187, - 2049,9060,2049,9023,10,1,9184,1793,9231,4097,9156,10,1,9228,2049,67,10,1,9175,9, - 10,9129,9250,147,105,111,58,120,56,54,0,2049,9169,3841,9156,2049,8941,10,9240,9272, - 147,112,105,111,58,105,110,45,98,121,116,101,0,1,0,2049,9250,10,9257,9293, - 147,112,105,111,58,111,117,116,45,98,121,116,101,0,1,1,2049,9250,10,9277, - 9313,147,112,105,111,58,105,110,45,119,111,114,100,0,1,6,2049,9250,10,9298, - 9334,147,112,105,111,58,111,117,116,45,119,111,114,100,0,1,7,2049,9250,10, - 9318,9352,147,114,97,109,58,115,116,111,114,101,0,1,2,2049,9250,10,9339,9370, - 147,114,97,109,58,102,101,116,99,104,0,1,3,2049,9250,10,9357,9393,147,114, - 97,109,58,115,116,111,114,101,45,98,121,116,101,0,1,4,2049,9250,10,9375, - 9416,147,114,97,109,58,102,101,116,99,104,45,98,121,116,101,0,1,5,2049, - 9250,10,9398,9431,134,78,117,109,98,101,114,0,0,48,49,50,51,52,53,54, - 55,56,57,65,66,67,68,69,70,0,9421,9432,134,68,73,71,73,84,83,0, - 9449,9470,147,99,111,110,118,101,114,116,0,1,9432,4,2049,4087,3841,9431,1,16, - 19,17,4097,9431,10,9398,9496,159,112,114,101,102,105,120,58,48,0,2049,2913,1, - 0,4097,9431,1793,9507,2049,9470,10,1,9504,2049,4028,3841,9431,2049,134,10,9484,112,134, - 67,77,79,83,58,65,68,68,82,69,83,83,0,9516,113,134,67,77,79,83, - 58,68,65,84,65,0,9532,9558,147,114,116,99,58,113,117,101,114,121,0,1, - 112,2049,9293,1,113,2049,9272,10,9545,9581,147,114,116,99,58,115,101,99,111,110, - 100,0,1,0,2049,9558,10,9567,9600,147,114,116,99,58,109,105,110,117,116,101, - 0,1,2,2049,9558,10,9586,9617,147,114,116,99,58,104,111,117,114,0,1,4, - 2049,9558,10,9605,9633,147,114,116,99,58,100,97,121,0,1,7,2049,9558,10,9622, - 9651,147,114,116,99,58,109,111,110,116,104,0,1,8,2049,9558,10,9638,9668,147, - 114,116,99,58,121,101,97,114,0,1,9,2049,9558,10,9656,9681,147,116,105,109, - 101,0,2049,9617,2049,9074,1,58,2049,9010,2049,9600,2049,9074,2049,9023,10,9673,1016,134, - 115,101,114,105,97,108,58,67,79,77,49,0,9696,760,134,115,101,114,105,97, - 108,58,67,79,77,50,0,9711,1000,134,115,101,114,105,97,108,58,67,79,77, - 51,0,9726,744,134,115,101,114,105,97,108,58,67,79,77,52,0,9741,9771,134, - 115,101,114,105,97,108,58,80,111,114,116,0,1016,9756,9792,147,115,101,114,105, - 97,108,58,114,101,99,101,105,118,101,100,63,0,3841,9771,1,5,17,2049,9272, - 1,1,21,2049,2588,10,9772,9822,147,115,101,114,105,97,108,58,101,109,112,116, - 121,63,0,3841,9771,1,5,17,2049,9272,1,32,21,2049,2588,10,9805,9850,147,115, - 101,114,105,97,108,58,114,101,97,100,0,2049,9792,1793,9859,3841,9771,2049,9272,10, - 1,9854,2049,2499,2049,9850,10,9835,9882,147,115,101,114,105,97,108,58,119,114,105, - 116,101,0,2049,9822,1793,9891,3841,9771,2049,9293,10,1,9886,2049,2499,2049,9882,10,9866, - 9913,147,115,101,114,105,97,108,58,115,101,110,100,0,1793,9918,2049,9882,10,1, - 9915,2049,4028,10,9898,9938,147,115,101,114,105,97,108,58,105,110,105,116,0,1, - 0,3841,9771,1,1,17,2049,9293,1,128,3841,9771,1,3,17,2049,9293,1,3,3841, - 9771,2049,9293,1,0,3841,9771,1,1,17,2049,9293,1,3,3841,9771,1,3,17,2049, - 9293,1,199,3841,9771,1,2,17,2049,9293,1,11,3841,9771,1,4,17,2049,9293,10, - 9923,753664,134,86,71,65,45,66,65,83,69,0,9999,80,134,67,79,76,85,77, - 78,83,0,10011,25,134,82,79,87,83,0,10022,980,134,86,71,65,45,67,85, - 82,83,79,82,0,10030,981,134,86,71,65,45,68,65,84,65,0,10044,10067,134, - 118,103,97,58,82,111,119,0,0,10056,10082,134,118,103,97,58,67,111,108,117, - 109,110,0,0,10068,10104,147,118,103,97,58,117,112,100,97,116,101,45,99,117, - 114,115,111,114,0,3841,10067,1,80,19,3841,10082,17,2,1,15,1,980,2049,9293, - 1,255,21,1,981,2049,9293,1,14,1,980,2049,9293,1,8,24,1,255,21,1, - 981,2049,9293,10,10083,10162,147,118,103,97,58,109,111,118,101,45,99,117,114,115, - 111,114,0,4097,10082,4097,10067,2049,10104,10,10143,10184,134,118,103,97,58,68,105,115, + 0,0,0,0,0,8707,8852,147,110,101,120,116,0,3841,8706,1,8716,17,2049,3020, + 10,8844,8868,147,112,114,101,112,0,1,8706,2049,3020,1,0,3841,8706,1,8716,17, + 16,10,8860,8889,147,100,111,110,101,0,1,8706,2049,3035,10,8681,8899,147,73,0, + 3841,8706,1,8716,17,15,10,8894,8911,147,74,0,3841,8706,1,8716,17,2049,2932,15, + 10,8906,8925,147,75,0,3841,8706,1,8716,17,1,2,18,15,10,8920,8956,147,116, + 105,109,101,115,60,119,105,116,104,45,105,110,100,101,120,62,0,2049,8868,4, + 1793,8976,25,2049,2932,5,1,21,2049,2088,6,2049,8852,1,8961,7,10,1,8961,8, + 3,2049,8889,10,8935,8991,159,104,111,111,107,0,1,1793,2049,108,2049,1847,2049,2919, + 2049,108,10,8983,9014,147,115,101,116,45,104,111,111,107,0,2049,2919,16,10,9002, + 9028,147,117,110,104,111,111,107,0,2049,2919,2,2049,2919,4,16,10,9018,9052,147, + 105,111,58,101,110,117,109,101,114,97,116,101,0,27,10,9036,9066,147,105,111, + 58,113,117,101,114,121,0,28,10,9054,9081,147,105,111,58,105,110,118,111,107, + 101,0,29,10,9068,9091,134,83,108,111,116,0,0,9068,9107,147,105,111,58,115, + 99,97,110,45,102,111,114,0,1,-1,4097,9091,2049,9052,1793,9133,2049,8899,2049,9066, + 772,67502597,11,1793,9129,2049,8899,4097,9091,10,1,9124,9,10,1,9115,2049,8956,3,3841, + 9091,10,9092,9150,147,99,58,112,117,116,0,1793,9152,1,0,2049,9081,10,9141,9163, + 147,110,108,0,1,10,2049,9150,10,9157,9174,147,115,112,0,1,32,2049,9150,10, + 9168,9186,147,116,97,98,0,1,9,2049,9150,10,9179,9200,147,115,58,112,117,116, + 0,1,9150,2049,4034,10,9191,9214,147,110,58,112,117,116,0,2049,6071,2049,9200,10, + 9205,9228,147,114,101,115,101,116,0,2049,1556,25,5,3,6,1,1,18,1,9230, + 7,10,9219,9255,147,100,117,109,112,45,115,116,97,99,107,0,2049,1556,25,3, + 5,2049,9255,6,2,2049,9214,2049,9174,10,9241,9277,147,70,82,69,69,0,2049,3579, + 1,1025,18,2049,1847,18,10,9269,9296,134,105,111,58,88,56,54,0,0,9286,9309, + 147,105,100,101,110,116,105,102,121,0,3841,9296,2049,2578,1793,9376,1,2000,2049,9107, + 2,2049,2613,1793,9364,3,2049,3708,73,79,32,68,69,86,73,67,69,32,84,89, + 80,69,32,50,48,48,48,32,78,79,84,32,70,79,85,78,68,0,1,9327, + 2049,9200,2049,9163,10,1,9324,1793,9371,4097,9296,10,1,9368,2049,67,10,1,9315,9, + 10,9269,9390,147,105,111,58,120,56,54,0,2049,9309,3841,9296,2049,9081,10,9380,9412, + 147,112,105,111,58,105,110,45,98,121,116,101,0,1,0,2049,9390,10,9397,9433, + 147,112,105,111,58,111,117,116,45,98,121,116,101,0,1,1,2049,9390,10,9417, + 9453,147,112,105,111,58,105,110,45,119,111,114,100,0,1,6,2049,9390,10,9438, + 9474,147,112,105,111,58,111,117,116,45,119,111,114,100,0,1,7,2049,9390,10, + 9458,9492,147,114,97,109,58,115,116,111,114,101,0,1,2,2049,9390,10,9479,9510, + 147,114,97,109,58,102,101,116,99,104,0,1,3,2049,9390,10,9497,9533,147,114, + 97,109,58,115,116,111,114,101,45,98,121,116,101,0,1,4,2049,9390,10,9515, + 9556,147,114,97,109,58,102,101,116,99,104,45,98,121,116,101,0,1,5,2049, + 9390,10,9538,9571,134,78,117,109,98,101,114,0,0,48,49,50,51,52,53,54, + 55,56,57,65,66,67,68,69,70,0,9561,9572,134,68,73,71,73,84,83,0, + 9589,9610,147,99,111,110,118,101,114,116,0,1,9572,4,2049,4093,3841,9571,1,16, + 19,17,4097,9571,10,9538,9636,159,112,114,101,102,105,120,58,48,0,2049,2919,1, + 0,4097,9571,1793,9647,2049,9610,10,1,9644,2049,4034,3841,9571,2049,134,10,9624,112,134, + 67,77,79,83,58,65,68,68,82,69,83,83,0,9656,113,134,67,77,79,83, + 58,68,65,84,65,0,9672,9698,147,114,116,99,58,113,117,101,114,121,0,1, + 112,2049,9433,1,113,2049,9412,10,9685,9721,147,114,116,99,58,115,101,99,111,110, + 100,0,1,0,2049,9698,10,9707,9740,147,114,116,99,58,109,105,110,117,116,101, + 0,1,2,2049,9698,10,9726,9757,147,114,116,99,58,104,111,117,114,0,1,4, + 2049,9698,10,9745,9773,147,114,116,99,58,100,97,121,0,1,7,2049,9698,10,9762, + 9791,147,114,116,99,58,109,111,110,116,104,0,1,8,2049,9698,10,9778,9808,147, + 114,116,99,58,121,101,97,114,0,1,9,2049,9698,10,9796,9821,147,116,105,109, + 101,0,2049,9757,2049,9214,1,58,2049,9150,2049,9740,2049,9214,2049,9163,10,9813,1016,134, + 115,101,114,105,97,108,58,67,79,77,49,0,9836,760,134,115,101,114,105,97, + 108,58,67,79,77,50,0,9851,1000,134,115,101,114,105,97,108,58,67,79,77, + 51,0,9866,744,134,115,101,114,105,97,108,58,67,79,77,52,0,9881,9911,134, + 115,101,114,105,97,108,58,80,111,114,116,0,1016,9896,9932,147,115,101,114,105, + 97,108,58,114,101,99,101,105,118,101,100,63,0,3841,9911,1,5,17,2049,9412, + 1,1,21,2049,2594,10,9912,9962,147,115,101,114,105,97,108,58,101,109,112,116, + 121,63,0,3841,9911,1,5,17,2049,9412,1,32,21,2049,2594,10,9945,9990,147,115, + 101,114,105,97,108,58,114,101,97,100,0,2049,9932,1793,9999,3841,9911,2049,9412,10, + 1,9994,2049,2505,2049,9990,10,9975,10022,147,115,101,114,105,97,108,58,119,114,105, + 116,101,0,2049,9962,1793,10031,3841,9911,2049,9433,10,1,10026,2049,2505,2049,10022,10,10006, + 10053,147,115,101,114,105,97,108,58,115,101,110,100,0,1793,10058,2049,10022,10,1, + 10055,2049,4034,10,10038,10078,147,115,101,114,105,97,108,58,105,110,105,116,0,1, + 0,3841,9911,1,1,17,2049,9433,1,128,3841,9911,1,3,17,2049,9433,1,3,3841, + 9911,2049,9433,1,0,3841,9911,1,1,17,2049,9433,1,3,3841,9911,1,3,17,2049, + 9433,1,199,3841,9911,1,2,17,2049,9433,1,11,3841,9911,1,4,17,2049,9433,10, + 10063,753664,134,86,71,65,45,66,65,83,69,0,10139,80,134,67,79,76,85,77, + 78,83,0,10151,25,134,82,79,87,83,0,10162,980,134,86,71,65,45,67,85, + 82,83,79,82,0,10170,981,134,86,71,65,45,68,65,84,65,0,10184,10207,134, + 118,103,97,58,82,111,119,0,0,10196,10222,134,118,103,97,58,67,111,108,117, + 109,110,0,0,10208,10244,147,118,103,97,58,117,112,100,97,116,101,45,99,117, + 114,115,111,114,0,3841,10207,1,80,19,3841,10222,17,2,1,15,1,980,2049,9433, + 1,255,21,1,981,2049,9433,1,14,1,980,2049,9433,1,8,24,1,255,21,1, + 981,2049,9433,10,10223,10302,147,118,103,97,58,109,111,118,101,45,99,117,114,115, + 111,114,0,4097,10222,4097,10207,2049,10244,10,10283,10324,134,118,103,97,58,68,105,115, 112,108,97,121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -609,66 +616,66 @@ int32_t ngaImage[] = { 1793,13218,38499,38540,201906,0,10,1,10,2,10,3,10,4,10,5, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,10169,12205,147,115,116,97,114,116,105,110,103,45,97,100, - 100,114,101,115,115,0,1,753664,1,80,1,2,19,17,10,12185,12228,147,99,104, - 97,114,97,99,116,101,114,115,0,1,25,2049,2926,1,80,19,10,12214,12249,147, - 115,97,118,101,45,98,121,116,101,0,2,2049,9416,2049,3388,1,2,17,10,12236, - 12266,147,115,97,118,101,0,1793,12271,2049,12249,10,1,12268,2049,2257,3,10,12258,12292, - 147,97,108,108,45,98,117,116,45,116,111,112,0,1793,12305,1,10184,2049,3480,2049, - 12205,2049,12228,2049,12266,10,1,12294,2049,3504,10,12277,12321,147,109,111,118,101,45,117, - 112,0,1,753664,1,10184,1793,12334,67502597,2049,9393,1,2,17,10,1,12327,2049,4028,3, - 10,12310,12353,147,108,97,115,116,45,108,105,110,101,0,1,753664,1,25,2049,2926, - 1,80,19,1,2,19,17,10,12340,12376,147,101,114,97,115,101,0,1,32,67502597, - 2049,9393,1,2,17,10,12367,12404,147,101,114,97,115,101,45,108,97,115,116,45, - 108,105,110,101,0,2049,12353,1,80,1793,12413,2049,12376,10,1,12410,2049,2257,3,10, - 12385,12429,147,115,99,114,111,108,108,0,2049,12292,2049,12321,2049,12404,10,12419,12448,147, - 112,111,115,105,116,105,111,110,0,1,25,2049,2926,1,0,2049,10162,10,12436,12468, - 147,115,99,114,111,108,108,63,0,3841,10067,1,25,11,10,10143,12486,147,118,103, - 97,58,119,114,97,112,0,2049,12468,1793,12495,2049,12429,2049,12448,10,1,12490,9,2049, - 10104,10,12474,12513,147,112,111,115,105,116,105,111,110,0,3841,10067,1,80,19,1, - 2,19,3841,10082,1,2,19,17,1,753664,17,10,12501,12539,147,110,101,120,116,0, - 1,10082,2049,3014,3841,10082,1,80,14,1793,12559,1,10067,2049,3014,1,0,4097,10082,10, - 1,12550,9,2049,12486,10,12474,12578,147,118,103,97,58,99,58,112,117,116,0,1, - 10,1793,12593,1,0,4097,10082,1,10067,2049,3014,2049,12486,10,1,12582,2049,2287,1,13, - 1793,12612,1,0,4097,10082,1,10067,2049,3014,2049,12486,10,1,12601,2049,2287,1,8,1793, - 12635,1,10082,2049,3029,1,32,2049,12578,1,10082,2049,3029,2049,10104,10,1,12620,2049,2287, - 2049,12513,2049,9393,2049,12539,10,12565,12655,147,99,108,101,97,114,0,1,0,1,0, - 2049,10162,1,753664,1,80,1,25,19,1793,12679,1,32,67502597,2049,9393,1,2,17,10, - 1,12670,2049,2257,3,1,0,1,0,2049,10162,10,12646,12709,147,118,103,97,58,105, - 110,105,116,105,97,108,105,122,101,0,1,1793,1,9010,1,2,17,16,1,12578, - 1,9010,1,3,17,16,10,12691,32,134,97,116,97,58,82,69,65,68,0,12726, - 48,134,97,116,97,58,87,82,73,84,69,0,12738,496,134,97,116,97,58,80, - 82,73,77,65,82,89,0,12751,12783,147,97,116,97,58,99,108,101,97,114,45, - 98,115,121,0,1793,12795,1,503,2049,9272,1,128,21,2049,2572,10,1,12785,2049,2228, - 10,12766,12818,147,97,116,97,58,115,101,116,45,115,101,99,116,111,114,0,1, - 224,1,502,2049,9293,1,0,1,497,2049,9293,1,1,1,498,2049,9293,2,1,499, - 2049,9293,2,1,8,24,1,500,2049,9293,1,16,24,1,501,2049,9293,10,12800,12869, - 147,97,116,97,58,114,101,97,100,0,2049,12818,1,32,1,503,2049,9293,1,10000, - 1793,12882,10,1,12881,2049,2257,1,256,1793,12916,1,496,2049,9313,1793,12904,1,255,21, - 67502597,16,2049,2913,10,1,12896,2049,2082,1,8,24,67502597,16,2049,2913,10,1,12890,2049, - 2257,3,10,12857,12935,147,97,116,97,58,119,114,105,116,101,0,2049,12818,1,48, - 1,503,2049,9293,1,10000,1793,12948,10,1,12947,2049,2257,1,256,1793,12976,2049,59,1793, - 12966,2049,59,1,-8,24,10,1,12960,2049,2070,17,1,496,2049,9334,10,1,12956,2049, - 2257,3,1,231,1,503,2049,9293,2049,12783,10,12922,12998,147,101,111,108,63,0,1793, - 13004,1,13,11,10,1,13000,1793,13012,1,10,11,10,1,13008,1793,13020,1,32,11, - 10,1,13016,2049,2134,22,22,10,12990,13037,147,118,97,108,105,100,63,0,2,2049, - 82,2049,2588,10,13027,13055,147,99,104,101,99,107,45,98,115,0,2,1793,13062,1, - 8,11,10,1,13058,1793,13070,1,127,11,10,1,13066,2049,2097,22,1793,13083,2049,3412, - 2049,3412,771,10,1,13077,9,10,12922,13096,147,99,58,103,101,116,0,1793,13098,7425, - 1,2,2049,9010,10,13087,13118,147,115,58,103,101,116,45,119,111,114,100,0,1793, - 13145,1,1025,2049,3480,1793,13136,2049,13096,2,2049,3388,2049,13055,2049,12998,10,1,13126,2049, - 2228,2049,3354,2049,3795,10,1,13120,2049,3504,10,13104,13159,147,115,58,103,101,116,0, - 1793,13203,1,1025,2049,3480,1793,13194,2049,13096,2,2049,3388,2049,13055,1793,13180,1,13,11, - 10,1,13176,1793,13188,1,10,11,10,1,13184,2049,2097,22,10,1,13167,2049,2228,2049, - 3354,2049,3795,10,1,13161,2049,3504,10,13150,13218,147,108,105,115,116,101,110,0,2049, - 12709,2049,12655,2049,3702,82,69,84,82,79,47,78,97,116,105,118,101,0,1,13224, - 2049,9060,2049,9034,3841,4,1,100,20,2049,9074,1,46,2049,9010,2049,9074,2049,9023,2049, - 13118,2049,13037,1,367,1,11,2049,67,1,13258,7,10,1793,13304,1,63,2049,9010,2049, - 9034,2049,3702,119,111,114,100,32,110,111,116,32,102,111,117,110,100,0,1,13282, - 2049,9060,2049,9023,10,1,13274,13208,16,134,66,76,79,67,75,83,0,13306,13332,134, - 67,117,114,114,101,110,116,66,108,111,99,107,0,0,13316,13348,134,67,117,114, - 114,101,110,116,76,105,110,101,0,0,13333,13363,134,67,117,114,114,101,110,116, - 67,111,108,0,0,13349,13373,134,66,108,111,99,107,0,0,0,0,0,0,0, + 0,0,0,0,0,0,10309,12345,147,115,116,97,114,116,105,110,103,45,97,100, + 100,114,101,115,115,0,1,753664,1,80,1,2,19,17,10,12325,12368,147,99,104, + 97,114,97,99,116,101,114,115,0,1,25,2049,2932,1,80,19,10,12354,12389,147, + 115,97,118,101,45,98,121,116,101,0,2,2049,9556,2049,3394,1,2,17,10,12376, + 12406,147,115,97,118,101,0,1793,12411,2049,12389,10,1,12408,2049,2263,3,10,12398,12432, + 147,97,108,108,45,98,117,116,45,116,111,112,0,1793,12445,1,10324,2049,3486,2049, + 12345,2049,12368,2049,12406,10,1,12434,2049,3510,10,12417,12461,147,109,111,118,101,45,117, + 112,0,1,753664,1,10324,1793,12474,67502597,2049,9533,1,2,17,10,1,12467,2049,4034,3, + 10,12450,12493,147,108,97,115,116,45,108,105,110,101,0,1,753664,1,25,2049,2932, + 1,80,19,1,2,19,17,10,12480,12516,147,101,114,97,115,101,0,1,32,67502597, + 2049,9533,1,2,17,10,12507,12544,147,101,114,97,115,101,45,108,97,115,116,45, + 108,105,110,101,0,2049,12493,1,80,1793,12553,2049,12516,10,1,12550,2049,2263,3,10, + 12525,12569,147,115,99,114,111,108,108,0,2049,12432,2049,12461,2049,12544,10,12559,12588,147, + 112,111,115,105,116,105,111,110,0,1,25,2049,2932,1,0,2049,10302,10,12576,12608, + 147,115,99,114,111,108,108,63,0,3841,10207,1,25,11,10,10283,12626,147,118,103, + 97,58,119,114,97,112,0,2049,12608,1793,12635,2049,12569,2049,12588,10,1,12630,9,2049, + 10244,10,12614,12653,147,112,111,115,105,116,105,111,110,0,3841,10207,1,80,19,1, + 2,19,3841,10222,1,2,19,17,1,753664,17,10,12641,12679,147,110,101,120,116,0, + 1,10222,2049,3020,3841,10222,1,80,14,1793,12699,1,10207,2049,3020,1,0,4097,10222,10, + 1,12690,9,2049,12626,10,12614,12718,147,118,103,97,58,99,58,112,117,116,0,1, + 10,1793,12733,1,0,4097,10222,1,10207,2049,3020,2049,12626,10,1,12722,2049,2293,1,13, + 1793,12752,1,0,4097,10222,1,10207,2049,3020,2049,12626,10,1,12741,2049,2293,1,8,1793, + 12775,1,10222,2049,3035,1,32,2049,12718,1,10222,2049,3035,2049,10244,10,1,12760,2049,2293, + 2049,12653,2049,9533,2049,12679,10,12705,12795,147,99,108,101,97,114,0,1,0,1,0, + 2049,10302,1,753664,1,80,1,25,19,1793,12819,1,32,67502597,2049,9533,1,2,17,10, + 1,12810,2049,2263,3,1,0,1,0,2049,10302,10,12786,12849,147,118,103,97,58,105, + 110,105,116,105,97,108,105,122,101,0,1,1793,1,9150,1,2,17,16,1,12718, + 1,9150,1,3,17,16,10,12831,32,134,97,116,97,58,82,69,65,68,0,12866, + 48,134,97,116,97,58,87,82,73,84,69,0,12878,496,134,97,116,97,58,80, + 82,73,77,65,82,89,0,12891,12923,147,97,116,97,58,99,108,101,97,114,45, + 98,115,121,0,1793,12935,1,503,2049,9412,1,128,21,2049,2578,10,1,12925,2049,2234, + 10,12906,12958,147,97,116,97,58,115,101,116,45,115,101,99,116,111,114,0,1, + 224,1,502,2049,9433,1,0,1,497,2049,9433,1,1,1,498,2049,9433,2,1,499, + 2049,9433,2,1,8,24,1,500,2049,9433,1,16,24,1,501,2049,9433,10,12940,13009, + 147,97,116,97,58,114,101,97,100,0,2049,12958,1,32,1,503,2049,9433,1,10000, + 1793,13022,10,1,13021,2049,2263,1,256,1793,13056,1,496,2049,9453,1793,13044,1,255,21, + 67502597,16,2049,2919,10,1,13036,2049,2088,1,8,24,67502597,16,2049,2919,10,1,13030,2049, + 2263,3,10,12997,13075,147,97,116,97,58,119,114,105,116,101,0,2049,12958,1,48, + 1,503,2049,9433,1,10000,1793,13088,10,1,13087,2049,2263,1,256,1793,13116,2049,59,1793, + 13106,2049,59,1,-8,24,10,1,13100,2049,2076,17,1,496,2049,9474,10,1,13096,2049, + 2263,3,1,231,1,503,2049,9433,2049,12923,10,13062,13138,147,101,111,108,63,0,1793, + 13144,1,13,11,10,1,13140,1793,13152,1,10,11,10,1,13148,1793,13160,1,32,11, + 10,1,13156,2049,2140,22,22,10,13130,13177,147,118,97,108,105,100,63,0,2,2049, + 82,2049,2594,10,13167,13195,147,99,104,101,99,107,45,98,115,0,2,1793,13202,1, + 8,11,10,1,13198,1793,13210,1,127,11,10,1,13206,2049,2103,22,1793,13223,2049,3418, + 2049,3418,771,10,1,13217,9,10,13062,13236,147,99,58,103,101,116,0,1793,13238,7425, + 1,2,2049,9150,10,13227,13258,147,115,58,103,101,116,45,119,111,114,100,0,1793, + 13285,1,1025,2049,3486,1793,13276,2049,13236,2,2049,3394,2049,13195,2049,13138,10,1,13266,2049, + 2234,2049,3360,2049,3801,10,1,13260,2049,3510,10,13244,13299,147,115,58,103,101,116,0, + 1793,13343,1,1025,2049,3486,1793,13334,2049,13236,2,2049,3394,2049,13195,1793,13320,1,13,11, + 10,1,13316,1793,13328,1,10,11,10,1,13324,2049,2103,22,10,1,13307,2049,2234,2049, + 3360,2049,3801,10,1,13301,2049,3510,10,13290,13358,147,108,105,115,116,101,110,0,2049, + 12849,2049,12795,2049,3708,82,69,84,82,79,47,78,97,116,105,118,101,0,1,13364, + 2049,9200,2049,9174,3841,4,1,100,20,2049,9214,1,46,2049,9150,2049,9214,2049,9163,2049, + 13258,2049,13177,1,367,1,11,2049,67,1,13398,7,10,1793,13444,1,63,2049,9150,2049, + 9174,2049,3708,119,111,114,100,32,110,111,116,32,102,111,117,110,100,0,1,13422, + 2049,9200,2049,9163,10,1,13414,13348,16,134,66,76,79,67,75,83,0,13446,13472,134, + 67,117,114,114,101,110,116,66,108,111,99,107,0,0,13456,13488,134,67,117,114, + 114,101,110,116,76,105,110,101,0,0,13473,13503,134,67,117,114,114,101,110,116, + 67,111,108,0,0,13489,13513,134,66,108,111,99,107,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -719,8 +726,8 @@ int32_t ngaImage[] = { 1793,13218,38499,38540,201906,0,10,1,10,2,10,3,10,4,10,5, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13364, - 14408,134,66,108,111,99,107,115,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13504, + 14548,134,66,108,111,99,107,115,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -1539,7 +1546,7 @@ int32_t ngaImage[] = { 1793,13218,38499,38540,201906,0,10,1,10,2,10,3,10,4,10,5, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,14398,30799,134,84,79,66,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,14538,30939,134,84,79,66,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -1565,55 +1572,55 @@ int32_t ngaImage[] = { 1793,13218,38499,38540,201906,0,10,1,10,2,10,3,10,4,10,5, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,30792,31333,147,98,108,111,99, - 107,115,58,105,110,105,116,105,97,108,105,122,101,0,1,14408,1,1024,1,16, - 19,1793,31349,1,32,67502597,16,2049,2913,10,1,31342,2049,2257,3,10,31312,31370,147,98, - 108,111,99,107,58,119,114,105,116,101,0,10,31355,31385,147,98,108,111,99,107, - 58,114,101,97,100,0,10,31371,31403,147,99,117,114,114,101,110,116,45,98,108, - 111,99,107,0,3841,13332,1,1024,19,1,14408,17,10,31386,31420,147,110,101,120,116, - 0,1793,31425,2049,2913,10,1,31422,2049,2123,10,31412,31438,147,99,111,112,121,0,2049, - 2060,15,4,16,10,31371,31460,147,98,108,111,99,107,58,115,101,108,101,99,116, - 0,4097,13332,1793,31485,1,13373,2049,3480,2049,31403,1,1024,1793,31479,2049,59,2049,3388,10, - 1,31474,2049,2257,3,10,1,31464,2049,3504,10,31444,31506,147,98,108,111,99,107,58, - 117,112,100,97,116,101,0,2049,31403,1,13373,1,1024,1793,31519,2049,31438,2049,31420,10, - 1,31514,2049,2257,771,10,31490,31538,147,116,116,121,58,99,108,101,97,114,0,2049, - 12655,10,31525,31551,147,99,117,114,115,111,114,0,4,2049,10162,10,31541,31569,147,105, - 110,100,105,99,97,116,111,114,115,0,3841,13363,1,3,17,1,0,2049,31551,1, - 35,2049,9010,1,1,3841,13348,1,1,17,2049,31551,1,35,2049,9010,1,1,1,24, - 2049,31551,10,31555,31611,147,114,117,108,101,114,0,2049,3702,32,32,32,48,45,45, + 0,0,0,0,0,0,0,0,0,0,0,0,0,30932,31473,147,98,108,111,99, + 107,115,58,105,110,105,116,105,97,108,105,122,101,0,1,14548,1,1024,1,16, + 19,1793,31489,1,32,67502597,16,2049,2919,10,1,31482,2049,2263,3,10,31452,31510,147,98, + 108,111,99,107,58,119,114,105,116,101,0,10,31495,31525,147,98,108,111,99,107, + 58,114,101,97,100,0,10,31511,31543,147,99,117,114,114,101,110,116,45,98,108, + 111,99,107,0,3841,13472,1,1024,19,1,14548,17,10,31526,31560,147,110,101,120,116, + 0,1793,31565,2049,2919,10,1,31562,2049,2129,10,31552,31578,147,99,111,112,121,0,2049, + 2066,15,4,16,10,31511,31600,147,98,108,111,99,107,58,115,101,108,101,99,116, + 0,4097,13472,1793,31625,1,13513,2049,3486,2049,31543,1,1024,1793,31619,2049,59,2049,3394,10, + 1,31614,2049,2263,3,10,1,31604,2049,3510,10,31584,31646,147,98,108,111,99,107,58, + 117,112,100,97,116,101,0,2049,31543,1,13513,1,1024,1793,31659,2049,31578,2049,31560,10, + 1,31654,2049,2263,771,10,31630,31678,147,116,116,121,58,99,108,101,97,114,0,2049, + 12795,10,31665,31691,147,99,117,114,115,111,114,0,4,2049,10302,10,31681,31709,147,105, + 110,100,105,99,97,116,111,114,115,0,3841,13503,1,3,17,1,0,2049,31691,1, + 35,2049,9150,1,1,3841,13488,1,1,17,2049,31691,1,35,2049,9150,1,1,1,24, + 2049,31691,10,31695,31751,147,114,117,108,101,114,0,2049,3708,32,32,32,48,45,45, 45,45,45,45,45,45,45,49,45,45,45,45,45,45,45,45,45,50,45,45, - 45,45,45,45,45,45,45,51,0,1,31613,2049,9060,2049,3702,45,45,45,45,45, + 45,45,45,45,45,45,45,51,0,1,31753,2049,9200,2049,3708,45,45,45,45,45, 45,45,45,45,52,45,45,45,45,45,45,45,45,45,53,45,45,45,45,45, - 45,45,45,45,54,45,45,45,0,1,31654,2049,9060,2049,9023,10,31602,31705,147,98, - 108,111,99,107,35,0,1,35,2049,9010,3841,13332,2049,9074,10,31695,31721,147,112,111, - 115,0,3841,13348,2049,9074,1,58,2049,9010,3841,13363,2049,9074,10,31714,31744,147,115,116, - 97,116,117,115,0,2049,31705,2049,9034,2049,31721,2049,3702,32,58,58,32,0,1,31752, - 2049,9060,2049,9115,10,31734,31774,147,102,111,114,109,97,116,0,2049,3702,32,124,32, - 0,1,31776,2049,9060,8,2049,3702,32,124,0,1,31787,2049,9060,2049,9023,10,31764,31805, - 147,108,105,110,101,0,1793,31821,1,64,1793,31816,2049,59,2049,9010,10,1,31811,2049, - 2257,10,1,31807,2049,31774,10,31797,31834,147,99,111,100,101,0,1,13373,1,16,1793, - 31843,2049,31805,10,1,31840,2049,8816,3,10,31826,31859,147,102,111,114,109,97,116,0, - 2049,3702,32,124,32,0,1,31861,2049,9060,8,2049,3702,32,124,0,1,31872,2049,9060, - 2049,9023,10,31849,31889,147,116,111,98,0,1,30799,1,4,1793,31898,2049,31805,10,1, - 31895,2049,2257,3,10,31525,31921,147,98,108,111,99,107,58,100,105,115,112,108,97, - 121,0,2049,31538,2049,31611,2049,31834,2049,31611,2049,31889,2049,31611,2049,31569,2049,31744,10,31904, - 31947,134,84,78,101,120,116,0,0,31938,31959,147,115,99,114,111,108,108,63,0, - 3841,31947,1,256,14,10,31948,31978,147,115,99,114,111,108,108,45,117,112,0,1, - 30799,1,64,17,1,30799,1,193,2049,3172,1,193,4097,31947,1,30799,1,193,17,1, - 64,1793,32009,1,32,67502597,16,2049,2913,10,1,32002,2049,2257,3,10,31904,32029,147,99, - 58,112,117,116,60,84,79,66,62,0,2,1,10,11,1793,32049,3,3841,31947,1, - 64,17,2,1,64,788,18,4097,31947,10,1,32035,1793,32064,3841,31947,1,30799,17,16, - 1,31947,2049,3014,10,1,32053,2049,67,2049,31959,1793,32075,2049,31978,10,1,32072,9,10, - 32015,32091,147,119,105,116,104,45,116,111,98,0,1,32029,1,9010,2049,8874,8,1, - 9010,2049,8888,10,32079,32121,147,116,111,98,58,105,110,105,116,105,97,108,105,122, - 101,0,1,30799,1,512,1793,32134,1,32,67502597,16,2049,2913,10,1,32127,2049,2257,3, - 1,0,4097,31947,10,32103,32154,147,99,117,114,115,111,114,0,10,32144,32166,147,104, - 97,110,100,108,101,114,0,2049,13096,2049,3702,101,100,105,116,111,114,58,107,101, - 121,60,32,62,0,1,32170,1793,32193,1,11,17,16,10,1,32188,2049,2082,2049,200, - 2,2049,2588,1793,32209,2049,161,15,8,10,1,32204,1793,32215,3,10,1,32213,2049,67, - 10,32103,32235,134,68,111,110,101,69,100,105,116,105,110,103,0,0,32220,32244,147, - 101,100,105,116,0,2049,2445,4097,32235,2049,32121,2049,31333,2049,31385,1,0,2049,31460,1793, - 32269,2049,31921,2049,32154,2049,32166,3841,32235,10,1,32260,2049,2228,10,32236,32284,134,84,111, + 45,45,45,45,54,45,45,45,0,1,31794,2049,9200,2049,9163,10,31742,31845,147,98, + 108,111,99,107,35,0,1,35,2049,9150,3841,13472,2049,9214,10,31835,31861,147,112,111, + 115,0,3841,13488,2049,9214,1,58,2049,9150,3841,13503,2049,9214,10,31854,31884,147,115,116, + 97,116,117,115,0,2049,31845,2049,9174,2049,31861,2049,3708,32,58,58,32,0,1,31892, + 2049,9200,2049,9255,10,31874,31914,147,102,111,114,109,97,116,0,2049,3708,32,124,32, + 0,1,31916,2049,9200,8,2049,3708,32,124,0,1,31927,2049,9200,2049,9163,10,31904,31945, + 147,108,105,110,101,0,1793,31961,1,64,1793,31956,2049,59,2049,9150,10,1,31951,2049, + 2263,10,1,31947,2049,31914,10,31937,31974,147,99,111,100,101,0,1,13513,1,16,1793, + 31983,2049,31945,10,1,31980,2049,8956,3,10,31966,31999,147,102,111,114,109,97,116,0, + 2049,3708,32,124,32,0,1,32001,2049,9200,8,2049,3708,32,124,0,1,32012,2049,9200, + 2049,9163,10,31989,32029,147,116,111,98,0,1,30939,1,4,1793,32038,2049,31945,10,1, + 32035,2049,2263,3,10,31665,32061,147,98,108,111,99,107,58,100,105,115,112,108,97, + 121,0,2049,31678,2049,31751,2049,31974,2049,31751,2049,32029,2049,31751,2049,31709,2049,31884,10,32044, + 32087,134,84,78,101,120,116,0,0,32078,32099,147,115,99,114,111,108,108,63,0, + 3841,32087,1,256,14,10,32088,32118,147,115,99,114,111,108,108,45,117,112,0,1, + 30939,1,64,17,1,30939,1,193,2049,3178,1,193,4097,32087,1,30939,1,193,17,1, + 64,1793,32149,1,32,67502597,16,2049,2919,10,1,32142,2049,2263,3,10,32044,32169,147,99, + 58,112,117,116,60,84,79,66,62,0,2,1,10,11,1793,32189,3,3841,32087,1, + 64,17,2,1,64,788,18,4097,32087,10,1,32175,1793,32204,3841,32087,1,30939,17,16, + 1,32087,2049,3020,10,1,32193,2049,67,2049,32099,1793,32215,2049,32118,10,1,32212,9,10, + 32155,32231,147,119,105,116,104,45,116,111,98,0,1,32169,1,9150,2049,9014,8,1, + 9150,2049,9028,10,32219,32261,147,116,111,98,58,105,110,105,116,105,97,108,105,122, + 101,0,1,30939,1,512,1793,32274,1,32,67502597,16,2049,2919,10,1,32267,2049,2263,3, + 1,0,4097,32087,10,32243,32294,147,99,117,114,115,111,114,0,10,32284,32306,147,104, + 97,110,100,108,101,114,0,2049,13236,2049,3708,101,100,105,116,111,114,58,107,101, + 121,60,32,62,0,1,32310,1793,32333,1,11,17,16,10,1,32328,2049,2088,2049,200, + 2,2049,2594,1793,32349,2049,161,15,8,10,1,32344,1793,32355,3,10,1,32353,2049,67, + 10,32243,32375,134,68,111,110,101,69,100,105,116,105,110,103,0,0,32360,32384,147, + 101,100,105,116,0,2049,2451,4097,32375,2049,32261,2049,31473,2049,31525,1,0,2049,31600,1793, + 32409,2049,32061,2049,32294,2049,32306,3841,32375,10,1,32400,2049,2234,10,32376,32424,134,84,111, 107,101,110,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -1819,49 +1826,49 @@ int32_t ngaImage[] = { 1793,13218,38499,38540,201906,0,10,1,10,2,10,3,10,4,10,5, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,32274,36392,147,112,114,101,112,97,114,101,0,1,32284,1,4096,1793,36405,1, - 0,67502597,16,2049,2913,10,1,36398,2049,2257,3,10,36381,36423,147,103,101,110,101,114, - 97,116,101,0,1,32284,4097,3,1,13373,1,32,2049,6438,10,36411,36442,147,105,116, - 101,109,0,2,2049,82,2049,2572,1793,36451,3,10,1,36449,1793,36458,2049,367,10,1, - 36455,2049,67,10,36434,36474,147,112,114,111,99,101,115,115,0,1793,36479,2049,36442,10, - 1,36476,2049,7299,10,32236,36501,147,101,100,105,116,111,114,58,107,101,121,60,49, - 62,0,1793,36519,2049,36392,1,3,1793,36512,2049,36423,10,1,36509,2049,3112,2049,36474,10, - 1,36503,2049,32091,10,36484,36538,147,98,111,117,110,100,97,114,105,101,115,0,1, - 13348,1,0,1,15,2049,3046,1,13363,1,0,1,63,2049,3046,10,36524,36572,147,107, - 101,101,112,45,105,110,45,114,97,110,103,101,0,1,0,1,16,2049,2926,2049, - 2896,10,36484,36598,147,101,100,105,116,111,114,58,107,101,121,60,72,62,0,2049, - 31506,3841,13332,2049,2926,2049,36572,2049,31460,2049,31538,10,36581,36628,147,101,100,105,116,111, - 114,58,107,101,121,60,83,62,0,2049,31506,3841,13332,2049,2913,2049,36572,2049,31460,2049, - 31538,10,36611,36658,147,101,100,105,116,111,114,58,107,101,121,60,110,62,0,1, - 13348,2049,3029,2049,36538,10,36641,36682,147,101,100,105,116,111,114,58,107,101,121,60, - 104,62,0,1,13363,2049,3029,2049,36538,10,36665,36706,147,101,100,105,116,111,114,58, - 107,101,121,60,115,62,0,1,13363,2049,3014,2049,36538,10,36689,36730,147,101,100,105, - 116,111,114,58,107,101,121,60,116,62,0,1,13348,2049,3014,2049,36538,10,36713,36746, - 147,108,105,109,105,116,0,1,13373,2,1,1024,17,2049,2896,10,36737,36770,147,102, - 101,116,99,104,45,112,114,105,111,114,0,1793,36775,2049,2926,10,1,36772,1793,36781, - 15,10,1,36779,2049,2097,10,36755,36804,147,102,105,110,100,45,110,101,120,116,45, - 119,111,114,100,0,3841,13348,1,64,19,3841,13363,17,1,13373,17,2049,2913,2049,59, - 1,32,12,1,0,3,1,36817,7,10,36786,36848,147,102,105,110,100,45,112,114, - 105,111,114,45,119,111,114,100,0,3841,13348,1,64,19,3841,13363,17,1,13373,17, - 2049,2926,2049,36770,1,32,12,1,0,3,1,36861,7,10,36829,36888,147,115,101,108, - 101,99,116,45,110,101,120,116,0,2049,36804,2049,2926,2049,36746,1,13373,18,1,64, - 20,4097,13348,4097,13363,10,36873,36921,147,115,101,108,101,99,116,45,112,114,105,111, - 114,0,2049,36848,2049,2913,2049,36746,1,13373,18,1,64,20,4097,13348,4097,13363,10,36713, - 36955,147,101,100,105,116,111,114,58,107,101,121,60,99,62,0,2049,36921,10,36938, - 36975,147,101,100,105,116,111,114,58,107,101,121,60,114,62,0,2049,36888,10,36958, - 36986,147,100,101,115,116,0,3841,13348,1,64,19,3841,13363,17,1,13373,17,10,36978, - 37007,147,99,104,97,114,115,0,67502597,2049,82,10,36998,37019,147,99,111,112,121,0, - 1793,37033,2049,2060,1,35,2049,2070,16,1,2913,2049,2123,10,1,37021,2049,2257,10,36958, - 37055,147,101,100,105,116,111,114,58,107,101,121,60,97,62,0,2049,13159,2049,36986, - 2049,37007,2049,37019,771,2049,31538,10,37038,37084,147,101,100,105,116,111,114,58,107,101, - 121,60,120,62,0,1,13373,1,1024,1793,37097,1,32,67502597,16,2049,2913,10,1,37090, - 2049,2257,3,10,37067,37120,147,101,100,105,116,111,114,58,107,101,121,60,122,62, - 0,1,13373,3841,13348,1,64,19,17,1,64,1793,37139,1,32,67502597,16,2049,2913,10, - 1,37132,2049,2257,3,10,37103,37153,134,67,111,112,121,0,0,0,0,0,0,0, + 0,0,32414,36532,147,112,114,101,112,97,114,101,0,1,32424,1,4096,1793,36545,1, + 0,67502597,16,2049,2919,10,1,36538,2049,2263,3,10,36521,36563,147,103,101,110,101,114, + 97,116,101,0,1,32424,4097,3,1,13513,1,32,2049,6444,10,36551,36582,147,105,116, + 101,109,0,2,2049,82,2049,2578,1793,36591,3,10,1,36589,1793,36598,2049,367,10,1, + 36595,2049,67,10,36574,36614,147,112,114,111,99,101,115,115,0,1793,36619,2049,36582,10, + 1,36616,2049,7305,10,32376,36641,147,101,100,105,116,111,114,58,107,101,121,60,49, + 62,0,1793,36659,2049,36532,1,3,1793,36652,2049,36563,10,1,36649,2049,3118,2049,36614,10, + 1,36643,2049,32231,10,36624,36678,147,98,111,117,110,100,97,114,105,101,115,0,1, + 13488,1,0,1,15,2049,3052,1,13503,1,0,1,63,2049,3052,10,36664,36712,147,107, + 101,101,112,45,105,110,45,114,97,110,103,101,0,1,0,1,16,2049,2932,2049, + 2902,10,36624,36738,147,101,100,105,116,111,114,58,107,101,121,60,72,62,0,2049, + 31646,3841,13472,2049,2932,2049,36712,2049,31600,2049,31678,10,36721,36768,147,101,100,105,116,111, + 114,58,107,101,121,60,83,62,0,2049,31646,3841,13472,2049,2919,2049,36712,2049,31600,2049, + 31678,10,36751,36798,147,101,100,105,116,111,114,58,107,101,121,60,110,62,0,1, + 13488,2049,3035,2049,36678,10,36781,36822,147,101,100,105,116,111,114,58,107,101,121,60, + 104,62,0,1,13503,2049,3035,2049,36678,10,36805,36846,147,101,100,105,116,111,114,58, + 107,101,121,60,115,62,0,1,13503,2049,3020,2049,36678,10,36829,36870,147,101,100,105, + 116,111,114,58,107,101,121,60,116,62,0,1,13488,2049,3020,2049,36678,10,36853,36886, + 147,108,105,109,105,116,0,1,13513,2,1,1024,17,2049,2902,10,36877,36910,147,102, + 101,116,99,104,45,112,114,105,111,114,0,1793,36915,2049,2932,10,1,36912,1793,36921, + 15,10,1,36919,2049,2103,10,36895,36944,147,102,105,110,100,45,110,101,120,116,45, + 119,111,114,100,0,3841,13488,1,64,19,3841,13503,17,1,13513,17,2049,2919,2049,59, + 1,32,12,1,0,3,1,36957,7,10,36926,36988,147,102,105,110,100,45,112,114, + 105,111,114,45,119,111,114,100,0,3841,13488,1,64,19,3841,13503,17,1,13513,17, + 2049,2932,2049,36910,1,32,12,1,0,3,1,37001,7,10,36969,37028,147,115,101,108, + 101,99,116,45,110,101,120,116,0,2049,36944,2049,2932,2049,36886,1,13513,18,1,64, + 20,4097,13488,4097,13503,10,37013,37061,147,115,101,108,101,99,116,45,112,114,105,111, + 114,0,2049,36988,2049,2919,2049,36886,1,13513,18,1,64,20,4097,13488,4097,13503,10,36853, + 37095,147,101,100,105,116,111,114,58,107,101,121,60,99,62,0,2049,37061,10,37078, + 37115,147,101,100,105,116,111,114,58,107,101,121,60,114,62,0,2049,37028,10,37098, + 37126,147,100,101,115,116,0,3841,13488,1,64,19,3841,13503,17,1,13513,17,10,37118, + 37147,147,99,104,97,114,115,0,67502597,2049,82,10,37138,37159,147,99,111,112,121,0, + 1793,37173,2049,2066,1,35,2049,2076,16,1,2919,2049,2129,10,1,37161,2049,2263,10,37098, + 37195,147,101,100,105,116,111,114,58,107,101,121,60,97,62,0,2049,13299,2049,37126, + 2049,37147,2049,37159,771,2049,31678,10,37178,37224,147,101,100,105,116,111,114,58,107,101, + 121,60,120,62,0,1,13513,1,1024,1793,37237,1,32,67502597,16,2049,2919,10,1,37230, + 2049,2263,3,10,37207,37260,147,101,100,105,116,111,114,58,107,101,121,60,122,62, + 0,1,13513,3841,13488,1,64,19,17,1,64,1793,37279,1,32,67502597,16,2049,2919,10, + 1,37272,2049,2263,3,10,37243,37293,134,67,111,112,121,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37145, - 37231,134,67,111,112,121,66,108,111,99,107,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37285, + 37371,134,67,111,112,121,66,108,111,99,107,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -1912,19 +1919,19 @@ int32_t ngaImage[] = { 1793,13218,38499,38540,201906,0,10,1,10,2,10,3,10,4,10,5, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37103,38273,147, - 101,100,105,116,111,114,58,107,101,121,60,98,62,0,1,13373,3841,13348,1,64, - 19,17,1,37153,1,64,2049,3172,10,38256,38305,147,101,100,105,116,111,114,58,107, - 101,121,60,109,62,0,1,37153,1,13373,3841,13348,1,64,19,17,1,64,2049,3172, - 10,38288,38337,147,101,100,105,116,111,114,58,107,101,121,60,66,62,0,1,13373, - 1,37231,1,1024,2049,3172,10,38320,38363,147,101,100,105,116,111,114,58,107,101,121, - 60,77,62,0,1,37231,1,13373,1,1024,2049,3172,10,38346,38389,147,101,100,105,116, - 111,114,58,107,101,121,60,105,62,0,2049,31506,2049,31370,10,38372,38411,147,101,100, - 105,116,111,114,58,107,101,121,60,121,62,0,3841,13332,2049,31460,10,38394,38433,147, - 101,100,105,116,111,114,58,107,101,121,60,113,62,0,2049,2433,4097,32235,10,38416, - 38455,147,101,100,105,116,111,114,58,107,101,121,60,96,62,0,2049,32121,10,38438, - 38475,147,101,100,105,116,111,114,58,107,101,121,60,33,62,0,1,13373,3841,13332, - 1,2,19,2049,12935,1,13373,1,512,17,3841,13332,1,2,19,2049,2913,2049,12935,10, - 38458,38516,147,101,100,105,116,111,114,58,107,101,121,60,64,62,0,1,13373,3841, - 13332,1,2,19,2049,12869,1,13373,1,512,17,3841,13332,1,2,19,2049,2913,2049,12869, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37243,38413,147, + 101,100,105,116,111,114,58,107,101,121,60,98,62,0,1,13513,3841,13488,1,64, + 19,17,1,37293,1,64,2049,3178,10,38396,38445,147,101,100,105,116,111,114,58,107, + 101,121,60,109,62,0,1,37293,1,13513,3841,13488,1,64,19,17,1,64,2049,3178, + 10,38428,38477,147,101,100,105,116,111,114,58,107,101,121,60,66,62,0,1,13513, + 1,37371,1,1024,2049,3178,10,38460,38503,147,101,100,105,116,111,114,58,107,101,121, + 60,77,62,0,1,37371,1,13513,1,1024,2049,3178,10,38486,38529,147,101,100,105,116, + 111,114,58,107,101,121,60,105,62,0,2049,31646,2049,31510,10,38512,38551,147,101,100, + 105,116,111,114,58,107,101,121,60,121,62,0,3841,13472,2049,31600,10,38534,38573,147, + 101,100,105,116,111,114,58,107,101,121,60,113,62,0,2049,2439,4097,32375,10,38556, + 38595,147,101,100,105,116,111,114,58,107,101,121,60,96,62,0,2049,32261,10,38578, + 38615,147,101,100,105,116,111,114,58,107,101,121,60,33,62,0,1,13513,3841,13472, + 1,2,19,2049,13075,1,13513,1,512,17,3841,13472,1,2,19,2049,2919,2049,13075,10, + 38598,38656,147,101,100,105,116,111,114,58,107,101,121,60,64,62,0,1,13513,3841, + 13472,1,2,19,2049,13009,1,13513,1,512,17,3841,13472,1,2,19,2049,2919,2049,13009, 10,0 }; diff --git a/interfaces/native/x86/Block-Editor.forth b/interfaces/native/x86/Block-Editor.forth index 7faf119..0a123d0 100755 --- a/interfaces/native/x86/Block-Editor.forth +++ b/interfaces/native/x86/Block-Editor.forth @@ -251,7 +251,7 @@ tokenization. :prepare &Tokens #4096 [ #0 over store n:inc ] times drop ; :generate &Tokens !Heap &Block #32 s:tokenize ; :item dup s:length n:zero? [ drop ] [ interpret ] choose ; - :process [ item ] array:for-each ; + :process [ item ] a:for-each ; ---reveal--- :editor:key<1> [ prepare &Heap [ generate ] v:preserve process ] with-tob ; diff --git a/interfaces/rre_image.c b/interfaces/rre_image.c index f94a754..e713d45 100644 --- a/interfaces/rre_image.c +++ b/interfaces/rre_image.c @@ -1,6 +1,6 @@ #include -int32_t ngaImageCells = 16590; -int32_t ngaImage[] = { 1793,16369,16547,16589,201906,0,10,1,10,2,10,3,10,4,10,5,10,6,10, +int32_t ngaImageCells = 16530; +int32_t ngaImage[] = { 1793,16309,16487,16529,201906,0,10,1,10,2,10,3,10,4,10,5,10,6,10, 7,10,8,10,9,10,10,10,11,10,12,10,13,10,14,10,15,10,16,10, 17,10,18,10,19,10,20,10,21,10,22,10,23,10,24,10,25,10,26,10, 68223234,1,2575,85000450,1,656912,142,141,268505089,66,65,135205121,66,10,101384453,0,9,10,2049,59, @@ -9,7 +9,7 @@ int32_t ngaImage[] = { 1793,16369,16547,16589,201906,0,10,1,10,2,10,3,10,4,10,5, 108,1793,115,2049,115,117506307,0,108,0,524545,25,113,168820993,0,127,1642241,127,134283523,7,113, 1793,108,7,524545,2049,108,1793,108,16846593,127,142,141,1793,67,16846593,127,113,141,1793,67, 7,10,659713,1,659713,2,659713,3,17108737,3,2,524559,108,2049,108,2049,108,2049,122,168820998, - 2,16407,1025,167841793,180,5,17826049,0,180,2,15,25,524546,165,134287105,181,96,2305,182,459023, + 2,16347,1025,167841793,180,5,17826049,0,180,2,15,25,524546,165,134287105,181,96,2305,182,459023, 190,134287361,181,185,659201,180,2049,59,25,84152833,48,286458116,10,459014,205,184618754,45,25,16974851,-1, 168886532,1,134284289,1,214,134284289,0,205,660227,32,0,0,112,114,101,102,105,120,58,105, 0,285278479,231,7,2576,524546,82,1641217,1,167838467,228,2049,244,2049,240,524545,231,200,17826050,230, @@ -160,7 +160,7 @@ int32_t ngaImage[] = { 1793,16369,16547,16589,201906,0,10,1,10,2,10,3,10,4,10,5, 3104,3157,147,118,58,117,112,100,97,116,101,45,117,115,105,110,103,0,4,1793, 3164,15,4,8,10,1,3160,2049,2088,16,10,3139,3178,147,99,111,112,121,0,1793, 3187,1,59,2049,2076,2049,62,10,1,3180,2049,2263,3,3,10,3170,3207,147,83,99, - 111,112,101,76,105,115,116,0,16453,16505,10,3194,3216,147,123,123,0,2049,1570,2, + 111,112,101,76,105,115,116,0,16393,16445,10,3194,3216,147,123,123,0,2049,1570,2, 1,3207,2049,62,16,10,3210,3241,147,45,45,45,114,101,118,101,97,108,45,45, 45,0,2049,1570,1,3207,2049,2919,16,10,3225,3255,147,125,125,0,1,3207,2049,59, 4,15,11,1793,3269,3841,3207,4097,2,10,1,3264,1793,3299,3841,3207,1793,3294,1,2, @@ -358,325 +358,322 @@ int32_t ngaImage[] = { 1793,16369,16547,16589,201906,0,10,1,10,2,10,3,10,4,10,5, 15,25,2049,2066,1793,7115,1793,7110,4,8,10,1,7107,2049,2076,10,1,7105,2049,2076, 1,7099,7,10,1,7099,8,3,10,7081,7143,147,100,58,108,111,111,107,117,112, 45,120,116,0,1,0,4,1793,7169,2049,2066,2049,161,15,11,1793,7162,4,1,2027, - 2049,2076,10,1,7156,1,11,2049,67,10,1,7148,2049,7095,3,10,7128,7191,147,97, - 114,114,97,121,58,108,101,110,103,116,104,0,15,10,7175,7218,147,97,114,114, - 97,121,58,99,111,117,110,116,101,100,45,114,101,115,117,108,116,115,0,8, - 2049,1847,1793,7231,2,2049,108,1,108,2049,2263,10,1,7223,2049,2076,10,7193,7257,147, - 97,114,114,97,121,58,102,114,111,109,45,115,116,114,105,110,103,0,2049,1847, - 1793,7276,2,2049,82,2049,108,1793,7271,2049,108,10,1,7268,2049,4034,10,1,7261,2049, - 2076,10,7236,7286,134,81,0,0,7236,7305,147,97,114,114,97,121,58,102,111,114, - 45,101,97,99,104,0,1,7286,1793,7335,4097,7286,2049,59,1793,7329,2049,59,4,1793, - 7324,3841,7286,8,10,1,7320,2049,2076,10,1,7315,2049,2263,3,10,1,7309,2049,3118, - 10,7287,7353,147,97,114,114,97,121,58,100,117,112,0,2049,1847,1793,7371,2,15, - 2049,108,1793,7366,2049,108,10,1,7363,2049,7305,10,1,7357,2049,2076,10,7340,7392,147, - 97,114,114,97,121,58,102,105,108,116,101,114,0,1793,7420,67502597,1793,7399,8,10, - 1,7397,2049,2076,4,1793,7409,2049,108,10,1,7406,1793,7415,3,10,1,7413,2049,67, - 10,1,7394,2049,7041,2049,1847,1793,7435,67502597,15,2049,108,2049,7305,10,1,7428,2049,2076, - 2049,1847,67502597,18,2049,2932,67502597,16,10,7376,7453,134,70,0,0,7376,7473,147,97,114, - 114,97,121,58,99,111,110,116,97,105,110,115,63,0,1,7453,2049,3085,1793,7487, - 67502597,11,3841,7453,22,4097,7453,10,1,7479,2049,7305,3,3841,7453,10,7454,7521,147,97, - 114,114,97,121,58,99,111,110,116,97,105,110,115,45,115,116,114,105,110,103, - 63,0,1,7453,2049,3085,1793,7536,67502597,2049,96,3841,7453,22,4097,7453,10,1,7527,2049, - 7305,3,3841,7453,10,7495,7557,147,97,114,114,97,121,58,109,97,112,0,1793,7563, - 8,2049,108,10,1,7559,2049,7041,2049,1847,1793,7578,67502597,15,2049,108,2049,7305,10,1, - 7571,2049,2076,10,7544,7600,147,97,114,114,97,121,58,114,101,118,101,114,115,101, - 0,2049,1847,1793,7634,2049,59,1793,7612,17,2049,2932,10,1,7608,2049,2088,2,2049,108, - 1793,7628,2,15,2049,108,2049,2932,10,1,7621,2049,2263,3,10,1,7604,2049,2076,10, - 7583,7652,147,97,114,114,97,121,58,110,116,104,0,17,2049,2919,10,7639,7672,147, - 97,114,114,97,121,58,114,101,100,117,99,101,0,1793,7676,4,10,1,7674,2049, - 2076,2049,7305,10,7656,7697,147,97,114,114,97,121,58,109,97,107,101,0,2049,7218, - 2049,7600,10,7683,7707,159,123,0,1,288,2049,159,1,1556,2049,147,1,288,2049,159, - 10,7702,7725,159,125,0,1,305,2049,159,1,2076,2049,147,1,1556,2049,147,1,13, - 2049,153,1,41,2049,153,1,2932,2049,147,1,305,2049,159,1,7697,2049,147,10,7720, - 7764,134,73,48,0,115,116,0,7758,7773,134,73,49,0,115,116,0,7767,7782,134, - 73,50,0,115,116,0,7776,7791,134,73,51,0,115,116,0,7785,7804,147,111,112, - 99,111,100,101,0,2049,3708,46,46,0,1,7806,1793,7816,1,0,10,1,7813,2049, - 2337,2049,3708,108,105,0,1,7822,1793,7832,1,1,10,1,7829,2049,2337,2049,3708,100, - 117,0,1,7838,1793,7848,1,2,10,1,7845,2049,2337,2049,3708,100,114,0,1,7854, - 1793,7864,1,3,10,1,7861,2049,2337,2049,3708,115,119,0,1,7870,1793,7880,1,4, - 10,1,7877,2049,2337,2049,3708,112,117,0,1,7886,1793,7896,1,5,10,1,7893,2049, - 2337,2049,3708,112,111,0,1,7902,1793,7912,1,6,10,1,7909,2049,2337,2049,3708,106, - 117,0,1,7918,1793,7928,1,7,10,1,7925,2049,2337,2049,3708,99,97,0,1,7934, - 1793,7944,1,8,10,1,7941,2049,2337,2049,3708,99,99,0,1,7950,1793,7960,1,9, - 10,1,7957,2049,2337,2049,3708,114,101,0,1,7966,1793,7976,1,10,10,1,7973,2049, - 2337,2049,3708,101,113,0,1,7982,1793,7992,1,11,10,1,7989,2049,2337,2049,3708,110, - 101,0,1,7998,1793,8008,1,12,10,1,8005,2049,2337,2049,3708,108,116,0,1,8014, - 1793,8024,1,13,10,1,8021,2049,2337,2049,3708,103,116,0,1,8030,1793,8040,1,14, - 10,1,8037,2049,2337,2049,3708,102,101,0,1,8046,1793,8056,1,15,10,1,8053,2049, - 2337,2049,3708,115,116,0,1,8062,1793,8072,1,16,10,1,8069,2049,2337,2049,3708,97, - 100,0,1,8078,1793,8088,1,17,10,1,8085,2049,2337,2049,3708,115,117,0,1,8094, - 1793,8104,1,18,10,1,8101,2049,2337,2049,3708,109,117,0,1,8110,1793,8120,1,19, - 10,1,8117,2049,2337,2049,3708,100,105,0,1,8126,1793,8136,1,20,10,1,8133,2049, - 2337,2049,3708,97,110,0,1,8142,1793,8152,1,21,10,1,8149,2049,2337,2049,3708,111, - 114,0,1,8158,1793,8168,1,22,10,1,8165,2049,2337,2049,3708,120,111,0,1,8174, - 1793,8184,1,23,10,1,8181,2049,2337,2049,3708,115,104,0,1,8190,1793,8200,1,24, - 10,1,8197,2049,2337,2049,3708,122,114,0,1,8206,1793,8216,1,25,10,1,8213,2049, - 2337,2049,3708,101,110,0,1,8222,1793,8232,1,26,10,1,8229,2049,2337,2049,3708,105, - 101,0,1,8238,1793,8248,1,27,10,1,8245,2049,2337,2049,3708,105,113,0,1,8254, - 1793,8264,1,28,10,1,8261,2049,2337,2049,3708,105,105,0,1,8270,1793,8280,1,29, - 10,1,8277,2049,2337,3,1,0,10,7794,8296,147,112,97,99,107,0,1,7764,2049, - 7804,1,7773,2049,7804,1,7782,2049,7804,1,7791,2049,7804,1,-24,24,4,1,-16,24, - 17,4,1,-8,24,17,4,17,10,7720,8333,147,105,0,2,1,7764,1,2,2049, - 3178,1,2,17,2,1,7773,1,2,2049,3178,1,2,17,2,1,7782,1,2,2049, - 3178,1,2,17,1,7791,1,2,2049,3178,2049,8296,2049,108,10,8328,8379,147,100,0, - 2049,108,10,8374,8387,147,114,0,2049,200,2049,161,15,2049,108,10,8382,8402,159,97, - 115,123,0,3841,127,1,127,2049,3085,10,8395,8416,159,125,97,115,0,4097,127,10, - 8409,8435,147,99,117,114,114,101,110,116,45,108,105,110,101,0,2049,3579,1,1025, - 18,10,8419,8457,147,99,111,117,110,116,45,116,111,107,101,110,115,0,1793,8463, - 1,32,11,10,1,8459,2049,4463,2049,82,10,8441,8484,147,110,101,120,116,45,116, - 111,107,101,110,0,1,32,2049,6255,10,8470,8507,147,112,114,111,99,101,115,115, - 45,116,111,107,101,110,115,0,1793,8533,2049,8484,4,1793,8526,2,2049,82,2049,2594, - 1,367,1,11,2049,67,10,1,8514,2049,2076,2049,2919,10,1,8509,2049,2263,2049,367, - 10,8409,8554,147,115,58,101,118,97,108,117,97,116,101,0,2049,8435,2049,4732,2049, - 8435,2,2049,8457,2049,8507,10,8540,8574,134,70,108,97,103,0,0,8566,8586,147,99, - 111,109,112,97,114,101,0,67440386,184946434,10,8575,8599,147,108,101,110,103,116,104,0, - 659202,10,8589,8609,147,110,101,120,116,0,17043713,1,1,2577,10,8601,8627,147,110,111, - 116,45,101,113,117,97,108,0,50529030,2561,0,10,8614,8639,147,108,111,111,112,0, - 524549,8609,2049,8586,18157313,8574,8574,16,420610310,1,1,8639,7,10,8540,8666,147,97,114,114, - 97,121,58,101,113,63,0,1048833,-1,8574,2049,8586,151066369,-1,8627,2049,8599,2049,8639,251724547, - 8574,10,8653,8695,147,97,114,114,97,121,58,45,101,113,63,0,2049,8666,2049,2731, - 10,8681,8706,134,76,80,0,0,8700,8716,134,73,110,100,101,120,0,0,8,0, + 2049,2076,10,1,7156,1,11,2049,67,10,1,7148,2049,7095,3,10,7128,7187,147,97, + 58,108,101,110,103,116,104,0,15,10,7175,7210,147,97,58,99,111,117,110,116, + 101,100,45,114,101,115,117,108,116,115,0,8,2049,1847,1793,7223,2,2049,108,1, + 108,2049,2263,10,1,7215,2049,2076,10,7189,7245,147,97,58,102,114,111,109,45,115, + 116,114,105,110,103,0,2049,1847,1793,7264,2,2049,82,2049,108,1793,7259,2049,108,10, + 1,7256,2049,4034,10,1,7249,2049,2076,10,7228,7274,134,81,0,0,7228,7289,147,97, + 58,102,111,114,45,101,97,99,104,0,1,7274,1793,7319,4097,7274,2049,59,1793,7313, + 2049,59,4,1793,7308,3841,7274,8,10,1,7304,2049,2076,10,1,7299,2049,2263,3,10, + 1,7293,2049,3118,10,7275,7333,147,97,58,100,117,112,0,2049,1847,1793,7351,2,15, + 2049,108,1793,7346,2049,108,10,1,7343,2049,7289,10,1,7337,2049,2076,10,7324,7368,147, + 97,58,102,105,108,116,101,114,0,1793,7396,67502597,1793,7375,8,10,1,7373,2049,2076, + 4,1793,7385,2049,108,10,1,7382,1793,7391,3,10,1,7389,2049,67,10,1,7370,2049, + 7041,2049,1847,1793,7411,67502597,15,2049,108,2049,7289,10,1,7404,2049,2076,2049,1847,67502597,18, + 2049,2932,67502597,16,10,7356,7429,134,70,0,0,7356,7445,147,97,58,99,111,110,116, + 97,105,110,115,63,0,1,7429,2049,3085,1793,7459,67502597,11,3841,7429,22,4097,7429,10, + 1,7451,2049,7289,3,3841,7429,10,7430,7489,147,97,58,99,111,110,116,97,105,110, + 115,45,115,116,114,105,110,103,63,0,1,7429,2049,3085,1793,7504,67502597,2049,96,3841, + 7429,22,4097,7429,10,1,7495,2049,7289,3,3841,7429,10,7467,7521,147,97,58,109,97, + 112,0,1793,7527,8,2049,108,10,1,7523,2049,7041,2049,1847,1793,7542,67502597,15,2049,108, + 2049,7289,10,1,7535,2049,2076,10,7512,7560,147,97,58,114,101,118,101,114,115,101, + 0,2049,1847,1793,7594,2049,59,1793,7572,17,2049,2932,10,1,7568,2049,2088,2,2049,108, + 1793,7588,2,15,2049,108,2049,2932,10,1,7581,2049,2263,3,10,1,7564,2049,2076,10, + 7547,7608,147,97,58,110,116,104,0,17,2049,2919,10,7599,7624,147,97,58,114,101, + 100,117,99,101,0,1793,7628,4,10,1,7626,2049,2076,2049,7289,10,7612,7645,147,97, + 58,109,97,107,101,0,2049,7210,2049,7560,10,7635,7655,159,123,0,1,288,2049,159, + 1,1556,2049,147,1,288,2049,159,10,7650,7673,159,125,0,1,305,2049,159,1,2076, + 2049,147,1,1556,2049,147,1,13,2049,153,1,41,2049,153,1,2932,2049,147,1,305, + 2049,159,1,7645,2049,147,10,7668,7712,134,73,48,0,115,116,0,7706,7721,134,73, + 49,0,115,116,0,7715,7730,134,73,50,0,115,116,0,7724,7739,134,73,51,0, + 115,116,0,7733,7752,147,111,112,99,111,100,101,0,2049,3708,46,46,0,1,7754, + 1793,7764,1,0,10,1,7761,2049,2337,2049,3708,108,105,0,1,7770,1793,7780,1,1, + 10,1,7777,2049,2337,2049,3708,100,117,0,1,7786,1793,7796,1,2,10,1,7793,2049, + 2337,2049,3708,100,114,0,1,7802,1793,7812,1,3,10,1,7809,2049,2337,2049,3708,115, + 119,0,1,7818,1793,7828,1,4,10,1,7825,2049,2337,2049,3708,112,117,0,1,7834, + 1793,7844,1,5,10,1,7841,2049,2337,2049,3708,112,111,0,1,7850,1793,7860,1,6, + 10,1,7857,2049,2337,2049,3708,106,117,0,1,7866,1793,7876,1,7,10,1,7873,2049, + 2337,2049,3708,99,97,0,1,7882,1793,7892,1,8,10,1,7889,2049,2337,2049,3708,99, + 99,0,1,7898,1793,7908,1,9,10,1,7905,2049,2337,2049,3708,114,101,0,1,7914, + 1793,7924,1,10,10,1,7921,2049,2337,2049,3708,101,113,0,1,7930,1793,7940,1,11, + 10,1,7937,2049,2337,2049,3708,110,101,0,1,7946,1793,7956,1,12,10,1,7953,2049, + 2337,2049,3708,108,116,0,1,7962,1793,7972,1,13,10,1,7969,2049,2337,2049,3708,103, + 116,0,1,7978,1793,7988,1,14,10,1,7985,2049,2337,2049,3708,102,101,0,1,7994, + 1793,8004,1,15,10,1,8001,2049,2337,2049,3708,115,116,0,1,8010,1793,8020,1,16, + 10,1,8017,2049,2337,2049,3708,97,100,0,1,8026,1793,8036,1,17,10,1,8033,2049, + 2337,2049,3708,115,117,0,1,8042,1793,8052,1,18,10,1,8049,2049,2337,2049,3708,109, + 117,0,1,8058,1793,8068,1,19,10,1,8065,2049,2337,2049,3708,100,105,0,1,8074, + 1793,8084,1,20,10,1,8081,2049,2337,2049,3708,97,110,0,1,8090,1793,8100,1,21, + 10,1,8097,2049,2337,2049,3708,111,114,0,1,8106,1793,8116,1,22,10,1,8113,2049, + 2337,2049,3708,120,111,0,1,8122,1793,8132,1,23,10,1,8129,2049,2337,2049,3708,115, + 104,0,1,8138,1793,8148,1,24,10,1,8145,2049,2337,2049,3708,122,114,0,1,8154, + 1793,8164,1,25,10,1,8161,2049,2337,2049,3708,101,110,0,1,8170,1793,8180,1,26, + 10,1,8177,2049,2337,2049,3708,105,101,0,1,8186,1793,8196,1,27,10,1,8193,2049, + 2337,2049,3708,105,113,0,1,8202,1793,8212,1,28,10,1,8209,2049,2337,2049,3708,105, + 105,0,1,8218,1793,8228,1,29,10,1,8225,2049,2337,3,1,0,10,7742,8244,147, + 112,97,99,107,0,1,7712,2049,7752,1,7721,2049,7752,1,7730,2049,7752,1,7739,2049, + 7752,1,-24,24,4,1,-16,24,17,4,1,-8,24,17,4,17,10,7668,8281,147, + 105,0,2,1,7712,1,2,2049,3178,1,2,17,2,1,7721,1,2,2049,3178,1, + 2,17,2,1,7730,1,2,2049,3178,1,2,17,1,7739,1,2,2049,3178,2049,8244, + 2049,108,10,8276,8327,147,100,0,2049,108,10,8322,8335,147,114,0,2049,200,2049,161, + 15,2049,108,10,8330,8350,159,97,115,123,0,3841,127,1,127,2049,3085,10,8343,8364, + 159,125,97,115,0,4097,127,10,8357,8383,147,99,117,114,114,101,110,116,45,108, + 105,110,101,0,2049,3579,1,1025,18,10,8367,8405,147,99,111,117,110,116,45,116, + 111,107,101,110,115,0,1793,8411,1,32,11,10,1,8407,2049,4463,2049,82,10,8389, + 8432,147,110,101,120,116,45,116,111,107,101,110,0,1,32,2049,6255,10,8418,8455, + 147,112,114,111,99,101,115,115,45,116,111,107,101,110,115,0,1793,8481,2049,8432, + 4,1793,8474,2,2049,82,2049,2594,1,367,1,11,2049,67,10,1,8462,2049,2076,2049, + 2919,10,1,8457,2049,2263,2049,367,10,8357,8502,147,115,58,101,118,97,108,117,97, + 116,101,0,2049,8383,2049,4732,2049,8383,2,2049,8405,2049,8455,10,8488,8522,134,70,108, + 97,103,0,0,8514,8534,147,99,111,109,112,97,114,101,0,67440386,184946434,10,8523,8547, + 147,108,101,110,103,116,104,0,659202,10,8537,8557,147,110,101,120,116,0,17043713,1, + 1,2577,10,8549,8575,147,110,111,116,45,101,113,117,97,108,0,50529030,2561,0,10, + 8562,8587,147,108,111,111,112,0,524549,8557,2049,8534,18157313,8522,8522,16,420610310,1,1,8587, + 7,10,8488,8610,147,97,58,101,113,63,0,1048833,-1,8522,2049,8534,151066369,-1,8575,2049, + 8547,2049,8587,251724547,8522,10,8601,8635,147,97,58,45,101,113,63,0,2049,8610,2049,2731, + 10,8625,8646,134,76,80,0,0,8640,8656,134,73,110,100,101,120,0,0,8,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,8707,8852,147,110,101,120,116,0,3841,8706,1,8716,17,2049,3020, - 10,8844,8868,147,112,114,101,112,0,1,8706,2049,3020,1,0,3841,8706,1,8716,17, - 16,10,8860,8889,147,100,111,110,101,0,1,8706,2049,3035,10,8681,8899,147,73,0, - 3841,8706,1,8716,17,15,10,8894,8911,147,74,0,3841,8706,1,8716,17,2049,2932,15, - 10,8906,8925,147,75,0,3841,8706,1,8716,17,1,2,18,15,10,8920,8956,147,116, - 105,109,101,115,60,119,105,116,104,45,105,110,100,101,120,62,0,2049,8868,4, - 1793,8976,25,2049,2932,5,1,21,2049,2088,6,2049,8852,1,8961,7,10,1,8961,8, - 3,2049,8889,10,8935,8991,159,104,111,111,107,0,1,1793,2049,108,2049,1847,2049,2919, - 2049,108,10,8983,9014,147,115,101,116,45,104,111,111,107,0,2049,2919,16,10,9002, - 9028,147,117,110,104,111,111,107,0,2049,2919,2,2049,2919,4,16,10,9018,9052,147, - 105,111,58,101,110,117,109,101,114,97,116,101,0,27,10,9036,9066,147,105,111, - 58,113,117,101,114,121,0,28,10,9054,9081,147,105,111,58,105,110,118,111,107, - 101,0,29,10,9068,9091,134,83,108,111,116,0,7,9068,9107,147,105,111,58,115, - 99,97,110,45,102,111,114,0,1,-1,4097,9091,2049,9052,1793,9133,2049,8899,2049,9066, - 772,67502597,11,1793,9129,2049,8899,4097,9091,10,1,9124,9,10,1,9115,2049,8956,3,3841, - 9091,10,9092,9150,147,99,58,112,117,116,0,1793,9152,1,0,2049,9081,10,9141,9163, - 147,110,108,0,1,10,2049,9150,10,9157,9174,147,115,112,0,1,32,2049,9150,10, - 9168,9186,147,116,97,98,0,1,9,2049,9150,10,9179,9200,147,115,58,112,117,116, - 0,1,9150,2049,4034,10,9191,9214,147,110,58,112,117,116,0,2049,6071,2049,9200,10, - 9205,9228,147,114,101,115,101,116,0,2049,1556,25,5,3,6,1,1,18,1,9230, - 7,10,9219,9255,147,100,117,109,112,45,115,116,97,99,107,0,2049,1556,25,3, - 5,2049,9255,6,2,2049,9214,2049,9174,10,9241,9277,147,70,82,69,69,0,2049,3579, - 1,1025,18,2049,1847,18,10,9269,9303,134,105,111,58,70,105,108,101,115,121,115, - 116,101,109,0,0,9286,9316,147,105,100,101,110,116,105,102,121,0,3841,9303,2049, - 2578,1793,9383,1,4,2049,9107,2,2049,2613,1793,9371,3,2049,3708,73,79,32,68,69, + 0,0,0,0,0,8647,8792,147,110,101,120,116,0,3841,8646,1,8656,17,2049,3020, + 10,8784,8808,147,112,114,101,112,0,1,8646,2049,3020,1,0,3841,8646,1,8656,17, + 16,10,8800,8829,147,100,111,110,101,0,1,8646,2049,3035,10,8625,8839,147,73,0, + 3841,8646,1,8656,17,15,10,8834,8851,147,74,0,3841,8646,1,8656,17,2049,2932,15, + 10,8846,8865,147,75,0,3841,8646,1,8656,17,1,2,18,15,10,8860,8896,147,116, + 105,109,101,115,60,119,105,116,104,45,105,110,100,101,120,62,0,2049,8808,4, + 1793,8916,25,2049,2932,5,1,21,2049,2088,6,2049,8792,1,8901,7,10,1,8901,8, + 3,2049,8829,10,8875,8931,159,104,111,111,107,0,1,1793,2049,108,2049,1847,2049,2919, + 2049,108,10,8923,8954,147,115,101,116,45,104,111,111,107,0,2049,2919,16,10,8942, + 8968,147,117,110,104,111,111,107,0,2049,2919,2,2049,2919,4,16,10,8958,8992,147, + 105,111,58,101,110,117,109,101,114,97,116,101,0,27,10,8976,9006,147,105,111, + 58,113,117,101,114,121,0,28,10,8994,9021,147,105,111,58,105,110,118,111,107, + 101,0,29,10,9008,9031,134,83,108,111,116,0,7,9008,9047,147,105,111,58,115, + 99,97,110,45,102,111,114,0,1,-1,4097,9031,2049,8992,1793,9073,2049,8839,2049,9006, + 772,67502597,11,1793,9069,2049,8839,4097,9031,10,1,9064,9,10,1,9055,2049,8896,3,3841, + 9031,10,9032,9090,147,99,58,112,117,116,0,1793,9092,1,0,2049,9021,10,9081,9103, + 147,110,108,0,1,10,2049,9090,10,9097,9114,147,115,112,0,1,32,2049,9090,10, + 9108,9126,147,116,97,98,0,1,9,2049,9090,10,9119,9140,147,115,58,112,117,116, + 0,1,9090,2049,4034,10,9131,9154,147,110,58,112,117,116,0,2049,6071,2049,9140,10, + 9145,9168,147,114,101,115,101,116,0,2049,1556,25,5,3,6,1,1,18,1,9170, + 7,10,9159,9195,147,100,117,109,112,45,115,116,97,99,107,0,2049,1556,25,3, + 5,2049,9195,6,2,2049,9154,2049,9114,10,9181,9217,147,70,82,69,69,0,2049,3579, + 1,1025,18,2049,1847,18,10,9209,9243,134,105,111,58,70,105,108,101,115,121,115, + 116,101,109,0,0,9226,9256,147,105,100,101,110,116,105,102,121,0,3841,9243,2049, + 2578,1793,9323,1,4,2049,9047,2,2049,2613,1793,9311,3,2049,3708,73,79,32,68,69, 86,73,67,69,32,84,89,80,69,32,48,48,48,52,32,78,79,84,32,70, - 79,85,78,68,0,1,9334,2049,9200,2049,9163,10,1,9331,1793,9378,4097,9303,10,1, - 9375,2049,67,10,1,9322,9,10,9269,9408,147,105,111,58,102,105,108,101,45,111, - 112,101,114,97,116,105,111,110,0,2049,9316,3841,9303,2049,9081,10,9387,0,134,102, - 105,108,101,58,82,0,9415,1,134,102,105,108,101,58,87,0,9425,2,134,102, - 105,108,101,58,65,0,9435,3,134,102,105,108,101,58,82,43,0,9445,9469,147, - 102,105,108,101,58,111,112,101,110,0,1,0,2049,9408,10,9456,9488,147,102,105, - 108,101,58,99,108,111,115,101,0,1,1,2049,9408,10,9474,9506,147,102,105,108, - 101,58,114,101,97,100,0,1,2,2049,9408,10,9493,9525,147,102,105,108,101,58, - 119,114,105,116,101,0,1,3,2049,9408,10,9511,9543,147,102,105,108,101,58,116, - 101,108,108,0,1,4,2049,9408,10,9530,9561,147,102,105,108,101,58,115,101,101, - 107,0,1,5,2049,9408,10,9548,9579,147,102,105,108,101,58,115,105,122,101,0, - 1,6,2049,9408,10,9566,9599,147,102,105,108,101,58,100,101,108,101,116,101,0, - 1,7,2049,9408,10,9584,9618,147,102,105,108,101,58,102,108,117,115,104,0,1, - 8,2049,9408,10,9604,9639,147,102,105,108,101,58,101,120,105,115,116,115,63,0, - 1,0,2049,9469,2,2049,2594,1793,9653,2049,9488,2049,2439,10,1,9648,1793,9661,3,2049, - 2451,10,1,9657,2049,67,10,9623,9692,147,102,105,108,101,58,111,112,101,110,60, - 102,111,114,45,114,101,97,100,105,110,103,62,0,1,0,2049,9469,2,2049,9579, - 4,10,9666,9726,147,102,105,108,101,58,111,112,101,110,60,102,111,114,45,97, - 112,112,101,110,100,62,0,1,2,2049,9469,2,2049,9579,4,10,9701,9761,147,102, + 79,85,78,68,0,1,9274,2049,9140,2049,9103,10,1,9271,1793,9318,4097,9243,10,1, + 9315,2049,67,10,1,9262,9,10,9209,9348,147,105,111,58,102,105,108,101,45,111, + 112,101,114,97,116,105,111,110,0,2049,9256,3841,9243,2049,9021,10,9327,0,134,102, + 105,108,101,58,82,0,9355,1,134,102,105,108,101,58,87,0,9365,2,134,102, + 105,108,101,58,65,0,9375,3,134,102,105,108,101,58,82,43,0,9385,9409,147, + 102,105,108,101,58,111,112,101,110,0,1,0,2049,9348,10,9396,9428,147,102,105, + 108,101,58,99,108,111,115,101,0,1,1,2049,9348,10,9414,9446,147,102,105,108, + 101,58,114,101,97,100,0,1,2,2049,9348,10,9433,9465,147,102,105,108,101,58, + 119,114,105,116,101,0,1,3,2049,9348,10,9451,9483,147,102,105,108,101,58,116, + 101,108,108,0,1,4,2049,9348,10,9470,9501,147,102,105,108,101,58,115,101,101, + 107,0,1,5,2049,9348,10,9488,9519,147,102,105,108,101,58,115,105,122,101,0, + 1,6,2049,9348,10,9506,9539,147,102,105,108,101,58,100,101,108,101,116,101,0, + 1,7,2049,9348,10,9524,9558,147,102,105,108,101,58,102,108,117,115,104,0,1, + 8,2049,9348,10,9544,9579,147,102,105,108,101,58,101,120,105,115,116,115,63,0, + 1,0,2049,9409,2,2049,2594,1793,9593,2049,9428,2049,2439,10,1,9588,1793,9601,3,2049, + 2451,10,1,9597,2049,67,10,9563,9632,147,102,105,108,101,58,111,112,101,110,60, + 102,111,114,45,114,101,97,100,105,110,103,62,0,1,0,2049,9409,2,2049,9519, + 4,10,9606,9666,147,102,105,108,101,58,111,112,101,110,60,102,111,114,45,97, + 112,112,101,110,100,62,0,1,2,2049,9409,2,2049,9519,4,10,9641,9701,147,102, 105,108,101,58,111,112,101,110,60,102,111,114,45,119,114,105,116,105,110,103, - 62,0,1,1,2049,9469,10,9735,9773,134,70,73,68,0,0,9766,9782,134,83,105, - 122,101,0,0,9774,9793,134,65,99,116,105,111,110,0,0,9783,9804,134,66,117, - 102,102,101,114,0,0,9794,9814,147,45,101,111,102,63,0,3841,9773,2049,9543,3841, - 9782,13,10,9805,9834,147,112,114,101,115,101,114,118,101,0,1,9773,1793,9849,1, - 9782,1793,9844,8,10,1,9842,2049,3118,10,1,9838,2049,3118,10,9735,9872,147,102,105, - 108,101,58,114,101,97,100,45,108,105,110,101,0,4097,9773,1793,9929,2049,1847,2, - 4097,9804,2049,3486,1793,9921,3841,9773,2049,9506,2,2049,3394,1793,9898,1,13,11,10,1, - 9894,1793,9906,1,10,11,10,1,9902,1793,9914,1,0,11,10,1,9910,2049,2140,22, - 22,10,1,9885,2049,2234,2049,3418,3,10,1,9876,2049,3510,3841,9804,10,9854,9958,147, + 62,0,1,1,2049,9409,10,9675,9713,134,70,73,68,0,0,9706,9722,134,83,105, + 122,101,0,0,9714,9733,134,65,99,116,105,111,110,0,0,9723,9744,134,66,117, + 102,102,101,114,0,0,9734,9754,147,45,101,111,102,63,0,3841,9713,2049,9483,3841, + 9722,13,10,9745,9774,147,112,114,101,115,101,114,118,101,0,1,9713,1793,9789,1, + 9722,1793,9784,8,10,1,9782,2049,3118,10,1,9778,2049,3118,10,9675,9812,147,102,105, + 108,101,58,114,101,97,100,45,108,105,110,101,0,4097,9713,1793,9869,2049,1847,2, + 4097,9744,2049,3486,1793,9861,3841,9713,2049,9446,2,2049,3394,1793,9838,1,13,11,10,1, + 9834,1793,9846,1,10,11,10,1,9842,1793,9854,1,0,11,10,1,9850,2049,2140,22, + 22,10,1,9825,2049,2234,2049,3418,3,10,1,9816,2049,3510,3841,9744,10,9794,9898,147, 102,105,108,101,58,102,111,114,45,101,97,99,104,45,108,105,110,101,0,1793, - 9989,4097,9793,2049,9692,4097,9773,4097,9782,1793,9980,3841,9773,2049,9872,3841,9793,8,2049,9814, - 10,1,9970,2049,2208,3841,9773,2049,9488,10,1,9960,2049,9834,10,9936,10001,134,70,73, - 68,0,0,9994,10010,134,83,105,122,101,0,0,9936,10025,147,102,105,108,101,58, - 115,108,117,114,112,0,1793,10055,2049,9692,4097,10001,4097,10010,2049,3486,3841,10010,1793,10046, - 3841,10001,2049,9506,2049,3394,10,1,10039,2049,2263,3841,10001,2049,9488,10,1,10027,2049,3510, - 10,10011,10067,134,70,73,68,0,0,10011,10081,147,102,105,108,101,58,115,112,101, - 119,0,2049,9761,4097,10067,1793,10092,3841,10067,2049,9525,10,1,10087,2049,4034,3841,10067,2049, - 9488,10,10068,10114,134,105,111,58,71,111,112,104,101,114,0,0,10101,10127,147,105, - 100,101,110,116,105,102,121,0,3841,10114,2049,2578,1793,10194,1,5,2049,9107,2,2049, - 2613,1793,10182,3,2049,3708,73,79,32,68,69,86,73,67,69,32,84,89,80,69, - 32,48,48,48,53,32,78,79,84,32,70,79,85,78,68,0,1,10145,2049,9200, - 2049,9163,10,1,10142,1793,10189,4097,10114,10,1,10186,2049,67,10,1,10133,9,10,10068, - 10212,147,103,111,112,104,101,114,58,103,101,116,0,2049,10127,1,0,3841,10114,2049, - 9081,10,10198,10241,134,105,111,58,70,108,111,97,116,105,110,103,80,111,105,110, - 116,0,0,10221,10254,147,105,100,101,110,116,105,102,121,0,3841,10241,2049,2578,1793, - 10321,1,2,2049,9107,2,2049,2613,1793,10309,3,2049,3708,73,79,32,68,69,86,73, + 9929,4097,9733,2049,9632,4097,9713,4097,9722,1793,9920,3841,9713,2049,9812,3841,9733,8,2049,9754, + 10,1,9910,2049,2208,3841,9713,2049,9428,10,1,9900,2049,9774,10,9876,9941,134,70,73, + 68,0,0,9934,9950,134,83,105,122,101,0,0,9876,9965,147,102,105,108,101,58, + 115,108,117,114,112,0,1793,9995,2049,9632,4097,9941,4097,9950,2049,3486,3841,9950,1793,9986, + 3841,9941,2049,9446,2049,3394,10,1,9979,2049,2263,3841,9941,2049,9428,10,1,9967,2049,3510, + 10,9951,10007,134,70,73,68,0,0,9951,10021,147,102,105,108,101,58,115,112,101, + 119,0,2049,9701,4097,10007,1793,10032,3841,10007,2049,9465,10,1,10027,2049,4034,3841,10007,2049, + 9428,10,10008,10054,134,105,111,58,71,111,112,104,101,114,0,0,10041,10067,147,105, + 100,101,110,116,105,102,121,0,3841,10054,2049,2578,1793,10134,1,5,2049,9047,2,2049, + 2613,1793,10122,3,2049,3708,73,79,32,68,69,86,73,67,69,32,84,89,80,69, + 32,48,48,48,53,32,78,79,84,32,70,79,85,78,68,0,1,10085,2049,9140, + 2049,9103,10,1,10082,1793,10129,4097,10054,10,1,10126,2049,67,10,1,10073,9,10,10008, + 10152,147,103,111,112,104,101,114,58,103,101,116,0,2049,10067,1,0,3841,10054,2049, + 9021,10,10138,10181,134,105,111,58,70,108,111,97,116,105,110,103,80,111,105,110, + 116,0,0,10161,10194,147,105,100,101,110,116,105,102,121,0,3841,10181,2049,2578,1793, + 10261,1,2,2049,9047,2,2049,2613,1793,10249,3,2049,3708,73,79,32,68,69,86,73, 67,69,32,84,89,80,69,32,48,48,48,50,32,78,79,84,32,70,79,85, - 78,68,0,1,10272,2049,9200,2049,9163,10,1,10269,1793,10316,4097,10241,10,1,10313,2049, - 67,10,1,10260,9,10,10198,10347,147,105,111,58,102,108,111,97,116,45,111,112, - 101,114,97,116,105,111,110,0,2049,10254,3841,10241,2049,9081,10,10325,10368,147,110,58, - 116,111,45,102,108,111,97,116,0,1,0,2049,10347,10,10354,10387,147,115,58,116, - 111,45,102,108,111,97,116,0,1,1,2049,10347,10,10373,10407,147,102,58,116,111, - 45,110,117,109,98,101,114,0,1,2,2049,10347,10,10392,10427,147,102,58,116,111, - 45,115,116,114,105,110,103,0,2049,3689,2,1,3,2049,10347,10,10412,10442,147,102, - 58,43,0,1,4,2049,10347,10,10435,10454,147,102,58,45,0,1,5,2049,10347,10, - 10447,10466,147,102,58,42,0,1,6,2049,10347,10,10459,10478,147,102,58,47,0,1, - 7,2049,10347,10,10471,10494,147,102,58,102,108,111,111,114,0,1,8,2049,10347,10, - 10483,10512,147,102,58,99,101,105,108,105,110,103,0,1,9,2049,10347,10,10499,10527, - 147,102,58,115,113,114,116,0,1,10,2049,10347,10,10517,10541,147,102,58,101,113, - 63,0,1,11,2049,10347,10,10532,10556,147,102,58,45,101,113,63,0,1,12,2049, - 10347,10,10546,10570,147,102,58,108,116,63,0,1,13,2049,10347,10,10561,10584,147,102, - 58,103,116,63,0,1,14,2049,10347,10,10575,10600,147,102,58,100,101,112,116,104, - 0,1,15,2049,10347,10,10589,10614,147,102,58,100,117,112,0,1,16,2049,10347,10, - 10605,10629,147,102,58,100,114,111,112,0,1,17,2049,10347,10,10619,10644,147,102,58, - 115,119,97,112,0,1,18,2049,10347,10,10634,10658,147,102,58,108,111,103,0,1, - 19,2049,10347,10,10649,10674,147,102,58,112,111,119,101,114,0,1,20,2049,10347,10, - 10663,10688,147,102,58,115,105,110,0,1,21,2049,10347,10,10679,10702,147,102,58,99, - 111,115,0,1,22,2049,10347,10,10693,10716,147,102,58,116,97,110,0,1,23,2049, - 10347,10,10707,10731,147,102,58,97,115,105,110,0,1,24,2049,10347,10,10721,10746,147, - 102,58,97,99,111,115,0,1,25,2049,10347,10,10736,10761,147,102,58,97,116,97, - 110,0,1,26,2049,10347,10,10751,10776,147,102,58,112,117,115,104,0,1,27,2049, - 10347,10,10766,10790,147,102,58,112,111,112,0,1,28,2049,10347,10,10781,10807,147,102, - 58,97,100,101,112,116,104,0,1,29,2049,10347,10,10795,10824,147,102,58,115,113, - 117,97,114,101,0,2049,10614,2049,10466,10,10812,10839,147,102,58,111,118,101,114,0, - 2049,10776,2049,10614,2049,10790,2049,10644,10,10829,10858,147,102,58,116,117,99,107,0,2049, - 10614,2049,10776,2049,10644,2049,10790,10,10848,10876,147,102,58,110,105,112,0,2049,10644,2049, - 10629,10,10867,10896,147,102,58,100,114,111,112,45,112,97,105,114,0,2049,10629,2049, - 10629,10,10881,10915,147,102,58,100,117,112,45,112,97,105,114,0,2049,10839,2049,10839, - 10,10901,10929,147,102,58,114,111,116,0,2049,10776,2049,10644,2049,10790,2049,10644,10,10920, - 10953,147,102,58,112,111,115,105,116,105,118,101,63,0,1,0,2049,10368,2049,10584, - 10,10938,10975,147,102,58,110,101,103,97,116,105,118,101,63,0,1,0,2049,10368, - 2049,10570,10,10960,10994,147,102,58,110,101,103,97,116,101,0,1,-1,2049,10368,2049, - 10466,10,10982,11010,147,102,58,97,98,115,0,2049,10614,2049,10975,1793,11019,2049,10994,10, - 1,11016,9,10,11001,11035,159,112,114,101,102,105,120,58,46,0,2049,1818,1793,11042, - 2049,3734,10,1,11039,1793,11049,2049,3663,10,1,11046,2049,67,1,10387,2049,147,10,11023, - 11067,147,102,58,112,117,116,0,2049,10427,2049,9200,10,11058,11080,147,102,58,80,73, - 0,2049,3708,51,46,49,52,49,53,57,50,0,1,11082,2049,10387,10,11072,11103,147, - 102,58,69,0,2049,3708,50,46,55,49,56,50,56,49,0,1,11105,2049,10387,10, - 11096,11128,147,102,58,78,65,78,0,2049,3708,48,0,1,11130,2049,10387,2049,3708,48, - 0,1,11138,2049,10387,2049,10478,10,11119,11156,147,102,58,73,78,70,0,2049,3708,49, - 46,48,0,1,11158,2049,10387,2049,3708,48,0,1,11168,2049,10387,2049,10478,10,11147,11187, - 147,102,58,45,73,78,70,0,2049,3708,45,49,46,48,0,1,11189,2049,10387,2049, - 3708,48,0,1,11200,2049,10387,2049,10478,10,11177,11219,147,102,58,110,97,110,63,0, - 2049,10614,2049,10556,10,11209,11234,147,102,58,105,110,102,63,0,2049,11156,2049,10541,10, - 11224,11250,147,102,58,45,105,110,102,63,0,2049,11187,2049,10541,10,11239,11266,147,102, - 58,114,111,117,110,100,0,2049,10614,2049,10975,1793,11287,2049,3708,48,46,53,0,1, - 11274,2049,10387,2049,10454,2049,10512,10,1,11272,1793,11306,2049,3708,48,46,53,0,1,11293, - 2049,10387,2049,10442,2049,10494,10,1,11291,2049,67,10,11255,11320,147,102,58,109,105,110, - 0,2049,10915,2049,10570,1,10629,1,10876,2049,67,10,11311,11340,147,102,58,109,97,120, - 0,2049,10915,2049,10584,1,10629,1,10876,2049,67,10,11331,11362,147,102,58,108,105,109, - 105,116,0,2049,10644,2049,10776,2049,11320,2049,10790,2049,11340,10,11351,11387,147,102,58,98, - 101,116,119,101,101,110,63,0,2049,10929,2049,10614,2049,10776,2049,10929,2049,10929,2049,11362, - 2049,10790,2049,10541,10,11373,11413,147,102,58,105,110,99,0,2049,3708,49,0,1,11415, - 2049,10387,2049,10442,10,11404,11433,147,102,58,100,101,99,0,2049,3708,49,0,1,11435, - 2049,10387,2049,10454,10,11424,11454,147,102,58,99,97,115,101,0,2049,10839,2049,10541,1793, - 11466,2049,10629,8,1,-1,10,1,11460,1793,11474,3,1,0,10,1,11470,2049,67,25, - 6,771,10,11444,11492,147,102,58,115,105,103,110,0,2049,10614,2049,3708,48,0,1, - 11496,2049,10387,2049,10541,1793,11511,1,0,2049,10629,10,1,11506,2049,2505,2049,3708,48,0, - 1,11517,2049,10387,2049,10584,1793,11530,1,1,10,1,11527,1793,11537,1,-1,10,1,11534, - 2049,67,10,11482,2147483646,134,101,58,77,65,88,0,11542,-2147483646,134,101,58,77,73,78, - 0,11551,-2147483648,134,101,58,78,65,78,0,11560,2147483647,134,101,58,73,78,70,0,11569, - -2147483647,134,101,58,45,73,78,70,0,11578,11596,147,101,58,110,63,0,1,-2147483646,2049, - 2919,1,2147483646,2049,2932,2049,2950,10,11588,11617,147,101,58,109,97,120,63,0,1,2147483646, - 11,10,11607,11631,147,101,58,109,105,110,63,0,1,-2147483646,11,10,11621,11646,147,101, - 58,122,101,114,111,63,0,2049,2578,10,11635,11659,147,101,58,110,97,110,63,0, - 1,-2147483648,11,10,11649,11673,147,101,58,105,110,102,63,0,1,2147483647,11,10,11663,11688, - 147,101,58,45,105,110,102,63,0,1,-2147483647,11,10,11677,11702,147,101,58,99,108, - 105,112,0,1,-2147483646,1,2147483646,2049,2902,10,11692,11717,147,102,58,69,49,0,1793,11719, - 2049,3708,49,46,101,53,0,1,11721,2049,10387,10,11709,11743,147,102,58,45,115,104, - 105,102,116,0,2049,11717,2049,10466,10,11731,11760,147,102,58,43,115,104,105,102,116, - 0,2049,11717,2049,10478,10,11748,11782,147,102,58,115,105,103,110,101,100,45,115,113, - 114,116,0,2049,10614,2049,11492,2049,11010,2049,10527,2049,10368,2049,10466,10,11765,11808,147,102, - 58,43,101,110,99,111,100,101,0,2049,11782,2049,11743,10,11795,11826,147,102,58,45, - 101,110,99,111,100,101,0,2049,10614,2049,11492,2049,11760,2049,10614,2049,10466,2049,10368,2049, - 10466,10,11813,11860,147,102,58,115,105,103,110,101,100,45,115,113,117,97,114,101, - 0,2049,10614,2049,11492,2049,10614,2049,10466,2049,10368,2049,10466,10,11841,11883,147,102,58,116, - 111,45,101,0,2049,10614,2049,11219,1793,11895,2049,10629,3,1,-2147483648,10,1,11889,2049,2505, - 2049,10614,2049,11234,1793,11911,2049,10629,3,1,2147483647,10,1,11905,2049,2505,2049,10614,2049,11250, - 1793,11927,2049,10629,3,1,-2147483647,10,1,11921,2049,2505,2049,11808,2049,11266,2049,10407,2049,11702, - 1,-2147483646,1793,11946,2049,10629,10,1,11943,2049,2293,1,2147483646,1793,11957,2049,10629,10,1,11954, - 2049,2293,10,11873,11972,147,101,58,116,111,45,102,0,1,-2147483648,1793,11980,3,2049,11128, - 10,1,11976,2049,2293,1,2147483647,1793,11992,3,2049,11156,10,1,11988,2049,2293,1,-2147483647,1793, - 12004,3,2049,11187,10,1,12000,2049,2293,2049,10368,2049,11826,10,11962,12024,147,102,58,115, - 116,111,114,101,0,1793,12029,2049,11883,10,1,12026,2049,2076,16,10,12013,12046,147,102, - 58,102,101,116,99,104,0,15,2049,11972,10,12035,12066,147,102,58,100,117,109,112, - 45,115,116,97,99,107,0,2049,10600,2,1793,12074,2049,10776,10,1,12071,2049,2263,1793, - 12089,2049,10790,2049,10614,2049,11067,2049,9174,10,1,12080,2049,2263,10,12050,12111,147,102,58, - 100,117,109,112,45,97,115,116,97,99,107,0,2049,10807,2,1793,12119,2049,10790,10, - 1,12116,2049,2263,1793,12134,2049,10614,2049,11067,2049,9174,2049,10776,10,1,12125,2049,2263,10, - 12094,12148,147,101,58,112,117,116,0,1,2147483646,1793,12165,2049,3708,101,58,77,65,88, - 0,1,12154,2049,9200,10,1,12152,2049,2293,1,-2147483646,1793,12186,2049,3708,101,58,77,73, - 78,0,1,12175,2049,9200,10,1,12173,2049,2293,1,0,1793,12205,2049,3708,101,58,48, - 0,1,12196,2049,9200,10,1,12194,2049,2293,1,-2147483648,1793,12226,2049,3708,101,58,78,65, - 78,0,1,12215,2049,9200,10,1,12213,2049,2293,1,2147483647,1793,12247,2049,3708,101,58,73, - 78,70,0,1,12236,2049,9200,10,1,12234,2049,2293,1,-2147483647,1793,12269,2049,3708,101,58, - 45,73,78,70,0,1,12257,2049,9200,10,1,12255,2049,2293,2049,11972,2049,11067,10,12139, - 12296,134,105,111,58,85,110,105,120,83,121,115,99,97,108,108,0,0,12278,12309, - 147,105,100,101,110,116,105,102,121,0,3841,12296,2049,2578,1793,12376,1,8,2049,9107, - 2,2049,2613,1793,12364,3,2049,3708,73,79,32,68,69,86,73,67,69,32,84,89, - 80,69,32,48,48,48,56,32,78,79,84,32,70,79,85,78,68,0,1,12327, - 2049,9200,2049,9163,10,1,12324,1793,12371,4097,12296,10,1,12368,2049,67,10,1,12315,9, - 10,12139,12399,147,105,111,58,117,110,105,120,45,115,121,115,99,97,108,108,0, - 2049,12309,3841,12296,2049,9081,10,12380,12421,147,117,110,105,120,58,115,121,115,116,101, - 109,0,1,0,2049,12399,10,12406,12439,147,117,110,105,120,58,102,111,114,107,0, - 1,1,2049,12399,10,12426,12458,147,117,110,105,120,58,101,120,101,99,48,0,1, - 2,2049,12399,10,12444,12477,147,117,110,105,120,58,101,120,101,99,49,0,1,3, - 2049,12399,10,12463,12496,147,117,110,105,120,58,101,120,101,99,50,0,1,4,2049, - 12399,10,12482,12515,147,117,110,105,120,58,101,120,101,99,51,0,1,5,2049,12399, - 10,12501,12533,147,117,110,105,120,58,101,120,105,116,0,1,6,2049,12399,10,12520, - 12553,147,117,110,105,120,58,103,101,116,112,105,100,0,1,7,2049,12399,10,12538, - 12571,147,117,110,105,120,58,119,97,105,116,0,1,8,2049,12399,10,12558,12589,147, - 117,110,105,120,58,107,105,108,108,0,1,9,2049,12399,10,12576,12608,147,117,110, - 105,120,58,112,111,112,101,110,0,1,10,2049,12399,10,12594,12628,147,117,110,105, - 120,58,112,99,108,111,115,101,0,1,11,2049,12399,10,12613,12647,147,117,110,105, - 120,58,119,114,105,116,101,0,1793,12653,2,2049,82,10,1,12649,2049,2076,1,12, - 2049,12399,10,12633,12676,147,117,110,105,120,58,99,104,100,105,114,0,1,13,2049, - 12399,10,12662,12696,147,117,110,105,120,58,103,101,116,101,110,118,0,1,14,2049, - 12399,10,12681,12716,147,117,110,105,120,58,112,117,116,101,110,118,0,1,15,2049, - 12399,10,12701,12735,147,117,110,105,120,58,115,108,101,101,112,0,1,16,2049,12399, - 10,12721,12757,147,117,110,105,120,58,105,111,58,110,58,112,117,116,0,1,17, - 2049,12399,10,12740,12779,147,117,110,105,120,58,105,111,58,115,58,112,117,116,0, - 1,18,2049,12399,10,12762,12797,147,117,110,105,120,58,116,105,109,101,0,1,19, - 2049,12399,10,12784,12818,147,117,110,105,120,58,103,101,116,45,99,119,100,0,2049, - 3708,112,119,100,0,1,12820,1,0,2049,12608,2,2049,9872,2049,3957,4,2049,12628,1, - 0,2049,3708,115,121,115,58,97,114,103,118,0,1,12842,2049,200,2049,161,15,8, - 2049,82,17,2049,3708,47,0,1,12864,2049,4016,10,12802,12898,147,117,110,105,120,58, + 78,68,0,1,10212,2049,9140,2049,9103,10,1,10209,1793,10256,4097,10181,10,1,10253,2049, + 67,10,1,10200,9,10,10138,10287,147,105,111,58,102,108,111,97,116,45,111,112, + 101,114,97,116,105,111,110,0,2049,10194,3841,10181,2049,9021,10,10265,10308,147,110,58, + 116,111,45,102,108,111,97,116,0,1,0,2049,10287,10,10294,10327,147,115,58,116, + 111,45,102,108,111,97,116,0,1,1,2049,10287,10,10313,10347,147,102,58,116,111, + 45,110,117,109,98,101,114,0,1,2,2049,10287,10,10332,10367,147,102,58,116,111, + 45,115,116,114,105,110,103,0,2049,3689,2,1,3,2049,10287,10,10352,10382,147,102, + 58,43,0,1,4,2049,10287,10,10375,10394,147,102,58,45,0,1,5,2049,10287,10, + 10387,10406,147,102,58,42,0,1,6,2049,10287,10,10399,10418,147,102,58,47,0,1, + 7,2049,10287,10,10411,10434,147,102,58,102,108,111,111,114,0,1,8,2049,10287,10, + 10423,10452,147,102,58,99,101,105,108,105,110,103,0,1,9,2049,10287,10,10439,10467, + 147,102,58,115,113,114,116,0,1,10,2049,10287,10,10457,10481,147,102,58,101,113, + 63,0,1,11,2049,10287,10,10472,10496,147,102,58,45,101,113,63,0,1,12,2049, + 10287,10,10486,10510,147,102,58,108,116,63,0,1,13,2049,10287,10,10501,10524,147,102, + 58,103,116,63,0,1,14,2049,10287,10,10515,10540,147,102,58,100,101,112,116,104, + 0,1,15,2049,10287,10,10529,10554,147,102,58,100,117,112,0,1,16,2049,10287,10, + 10545,10569,147,102,58,100,114,111,112,0,1,17,2049,10287,10,10559,10584,147,102,58, + 115,119,97,112,0,1,18,2049,10287,10,10574,10598,147,102,58,108,111,103,0,1, + 19,2049,10287,10,10589,10614,147,102,58,112,111,119,101,114,0,1,20,2049,10287,10, + 10603,10628,147,102,58,115,105,110,0,1,21,2049,10287,10,10619,10642,147,102,58,99, + 111,115,0,1,22,2049,10287,10,10633,10656,147,102,58,116,97,110,0,1,23,2049, + 10287,10,10647,10671,147,102,58,97,115,105,110,0,1,24,2049,10287,10,10661,10686,147, + 102,58,97,99,111,115,0,1,25,2049,10287,10,10676,10701,147,102,58,97,116,97, + 110,0,1,26,2049,10287,10,10691,10716,147,102,58,112,117,115,104,0,1,27,2049, + 10287,10,10706,10730,147,102,58,112,111,112,0,1,28,2049,10287,10,10721,10747,147,102, + 58,97,100,101,112,116,104,0,1,29,2049,10287,10,10735,10764,147,102,58,115,113, + 117,97,114,101,0,2049,10554,2049,10406,10,10752,10779,147,102,58,111,118,101,114,0, + 2049,10716,2049,10554,2049,10730,2049,10584,10,10769,10798,147,102,58,116,117,99,107,0,2049, + 10554,2049,10716,2049,10584,2049,10730,10,10788,10816,147,102,58,110,105,112,0,2049,10584,2049, + 10569,10,10807,10836,147,102,58,100,114,111,112,45,112,97,105,114,0,2049,10569,2049, + 10569,10,10821,10855,147,102,58,100,117,112,45,112,97,105,114,0,2049,10779,2049,10779, + 10,10841,10869,147,102,58,114,111,116,0,2049,10716,2049,10584,2049,10730,2049,10584,10,10860, + 10893,147,102,58,112,111,115,105,116,105,118,101,63,0,1,0,2049,10308,2049,10524, + 10,10878,10915,147,102,58,110,101,103,97,116,105,118,101,63,0,1,0,2049,10308, + 2049,10510,10,10900,10934,147,102,58,110,101,103,97,116,101,0,1,-1,2049,10308,2049, + 10406,10,10922,10950,147,102,58,97,98,115,0,2049,10554,2049,10915,1793,10959,2049,10934,10, + 1,10956,9,10,10941,10975,159,112,114,101,102,105,120,58,46,0,2049,1818,1793,10982, + 2049,3734,10,1,10979,1793,10989,2049,3663,10,1,10986,2049,67,1,10327,2049,147,10,10963, + 11007,147,102,58,112,117,116,0,2049,10367,2049,9140,10,10998,11020,147,102,58,80,73, + 0,2049,3708,51,46,49,52,49,53,57,50,0,1,11022,2049,10327,10,11012,11043,147, + 102,58,69,0,2049,3708,50,46,55,49,56,50,56,49,0,1,11045,2049,10327,10, + 11036,11068,147,102,58,78,65,78,0,2049,3708,48,0,1,11070,2049,10327,2049,3708,48, + 0,1,11078,2049,10327,2049,10418,10,11059,11096,147,102,58,73,78,70,0,2049,3708,49, + 46,48,0,1,11098,2049,10327,2049,3708,48,0,1,11108,2049,10327,2049,10418,10,11087,11127, + 147,102,58,45,73,78,70,0,2049,3708,45,49,46,48,0,1,11129,2049,10327,2049, + 3708,48,0,1,11140,2049,10327,2049,10418,10,11117,11159,147,102,58,110,97,110,63,0, + 2049,10554,2049,10496,10,11149,11174,147,102,58,105,110,102,63,0,2049,11096,2049,10481,10, + 11164,11190,147,102,58,45,105,110,102,63,0,2049,11127,2049,10481,10,11179,11206,147,102, + 58,114,111,117,110,100,0,2049,10554,2049,10915,1793,11227,2049,3708,48,46,53,0,1, + 11214,2049,10327,2049,10394,2049,10452,10,1,11212,1793,11246,2049,3708,48,46,53,0,1,11233, + 2049,10327,2049,10382,2049,10434,10,1,11231,2049,67,10,11195,11260,147,102,58,109,105,110, + 0,2049,10855,2049,10510,1,10569,1,10816,2049,67,10,11251,11280,147,102,58,109,97,120, + 0,2049,10855,2049,10524,1,10569,1,10816,2049,67,10,11271,11302,147,102,58,108,105,109, + 105,116,0,2049,10584,2049,10716,2049,11260,2049,10730,2049,11280,10,11291,11327,147,102,58,98, + 101,116,119,101,101,110,63,0,2049,10869,2049,10554,2049,10716,2049,10869,2049,10869,2049,11302, + 2049,10730,2049,10481,10,11313,11353,147,102,58,105,110,99,0,2049,3708,49,0,1,11355, + 2049,10327,2049,10382,10,11344,11373,147,102,58,100,101,99,0,2049,3708,49,0,1,11375, + 2049,10327,2049,10394,10,11364,11394,147,102,58,99,97,115,101,0,2049,10779,2049,10481,1793, + 11406,2049,10569,8,1,-1,10,1,11400,1793,11414,3,1,0,10,1,11410,2049,67,25, + 6,771,10,11384,11432,147,102,58,115,105,103,110,0,2049,10554,2049,3708,48,0,1, + 11436,2049,10327,2049,10481,1793,11451,1,0,2049,10569,10,1,11446,2049,2505,2049,3708,48,0, + 1,11457,2049,10327,2049,10524,1793,11470,1,1,10,1,11467,1793,11477,1,-1,10,1,11474, + 2049,67,10,11422,2147483646,134,101,58,77,65,88,0,11482,-2147483646,134,101,58,77,73,78, + 0,11491,-2147483648,134,101,58,78,65,78,0,11500,2147483647,134,101,58,73,78,70,0,11509, + -2147483647,134,101,58,45,73,78,70,0,11518,11536,147,101,58,110,63,0,1,-2147483646,2049, + 2919,1,2147483646,2049,2932,2049,2950,10,11528,11557,147,101,58,109,97,120,63,0,1,2147483646, + 11,10,11547,11571,147,101,58,109,105,110,63,0,1,-2147483646,11,10,11561,11586,147,101, + 58,122,101,114,111,63,0,2049,2578,10,11575,11599,147,101,58,110,97,110,63,0, + 1,-2147483648,11,10,11589,11613,147,101,58,105,110,102,63,0,1,2147483647,11,10,11603,11628, + 147,101,58,45,105,110,102,63,0,1,-2147483647,11,10,11617,11642,147,101,58,99,108, + 105,112,0,1,-2147483646,1,2147483646,2049,2902,10,11632,11657,147,102,58,69,49,0,1793,11659, + 2049,3708,49,46,101,53,0,1,11661,2049,10327,10,11649,11683,147,102,58,45,115,104, + 105,102,116,0,2049,11657,2049,10406,10,11671,11700,147,102,58,43,115,104,105,102,116, + 0,2049,11657,2049,10418,10,11688,11722,147,102,58,115,105,103,110,101,100,45,115,113, + 114,116,0,2049,10554,2049,11432,2049,10950,2049,10467,2049,10308,2049,10406,10,11705,11748,147,102, + 58,43,101,110,99,111,100,101,0,2049,11722,2049,11683,10,11735,11766,147,102,58,45, + 101,110,99,111,100,101,0,2049,10554,2049,11432,2049,11700,2049,10554,2049,10406,2049,10308,2049, + 10406,10,11753,11800,147,102,58,115,105,103,110,101,100,45,115,113,117,97,114,101, + 0,2049,10554,2049,11432,2049,10554,2049,10406,2049,10308,2049,10406,10,11781,11823,147,102,58,116, + 111,45,101,0,2049,10554,2049,11159,1793,11835,2049,10569,3,1,-2147483648,10,1,11829,2049,2505, + 2049,10554,2049,11174,1793,11851,2049,10569,3,1,2147483647,10,1,11845,2049,2505,2049,10554,2049,11190, + 1793,11867,2049,10569,3,1,-2147483647,10,1,11861,2049,2505,2049,11748,2049,11206,2049,10347,2049,11642, + 1,-2147483646,1793,11886,2049,10569,10,1,11883,2049,2293,1,2147483646,1793,11897,2049,10569,10,1,11894, + 2049,2293,10,11813,11912,147,101,58,116,111,45,102,0,1,-2147483648,1793,11920,3,2049,11068, + 10,1,11916,2049,2293,1,2147483647,1793,11932,3,2049,11096,10,1,11928,2049,2293,1,-2147483647,1793, + 11944,3,2049,11127,10,1,11940,2049,2293,2049,10308,2049,11766,10,11902,11964,147,102,58,115, + 116,111,114,101,0,1793,11969,2049,11823,10,1,11966,2049,2076,16,10,11953,11986,147,102, + 58,102,101,116,99,104,0,15,2049,11912,10,11975,12006,147,102,58,100,117,109,112, + 45,115,116,97,99,107,0,2049,10540,2,1793,12014,2049,10716,10,1,12011,2049,2263,1793, + 12029,2049,10730,2049,10554,2049,11007,2049,9114,10,1,12020,2049,2263,10,11990,12051,147,102,58, + 100,117,109,112,45,97,115,116,97,99,107,0,2049,10747,2,1793,12059,2049,10730,10, + 1,12056,2049,2263,1793,12074,2049,10554,2049,11007,2049,9114,2049,10716,10,1,12065,2049,2263,10, + 12034,12088,147,101,58,112,117,116,0,1,2147483646,1793,12105,2049,3708,101,58,77,65,88, + 0,1,12094,2049,9140,10,1,12092,2049,2293,1,-2147483646,1793,12126,2049,3708,101,58,77,73, + 78,0,1,12115,2049,9140,10,1,12113,2049,2293,1,0,1793,12145,2049,3708,101,58,48, + 0,1,12136,2049,9140,10,1,12134,2049,2293,1,-2147483648,1793,12166,2049,3708,101,58,78,65, + 78,0,1,12155,2049,9140,10,1,12153,2049,2293,1,2147483647,1793,12187,2049,3708,101,58,73, + 78,70,0,1,12176,2049,9140,10,1,12174,2049,2293,1,-2147483647,1793,12209,2049,3708,101,58, + 45,73,78,70,0,1,12197,2049,9140,10,1,12195,2049,2293,2049,11912,2049,11007,10,12079, + 12236,134,105,111,58,85,110,105,120,83,121,115,99,97,108,108,0,0,12218,12249, + 147,105,100,101,110,116,105,102,121,0,3841,12236,2049,2578,1793,12316,1,8,2049,9047, + 2,2049,2613,1793,12304,3,2049,3708,73,79,32,68,69,86,73,67,69,32,84,89, + 80,69,32,48,48,48,56,32,78,79,84,32,70,79,85,78,68,0,1,12267, + 2049,9140,2049,9103,10,1,12264,1793,12311,4097,12236,10,1,12308,2049,67,10,1,12255,9, + 10,12079,12339,147,105,111,58,117,110,105,120,45,115,121,115,99,97,108,108,0, + 2049,12249,3841,12236,2049,9021,10,12320,12361,147,117,110,105,120,58,115,121,115,116,101, + 109,0,1,0,2049,12339,10,12346,12379,147,117,110,105,120,58,102,111,114,107,0, + 1,1,2049,12339,10,12366,12398,147,117,110,105,120,58,101,120,101,99,48,0,1, + 2,2049,12339,10,12384,12417,147,117,110,105,120,58,101,120,101,99,49,0,1,3, + 2049,12339,10,12403,12436,147,117,110,105,120,58,101,120,101,99,50,0,1,4,2049, + 12339,10,12422,12455,147,117,110,105,120,58,101,120,101,99,51,0,1,5,2049,12339, + 10,12441,12473,147,117,110,105,120,58,101,120,105,116,0,1,6,2049,12339,10,12460, + 12493,147,117,110,105,120,58,103,101,116,112,105,100,0,1,7,2049,12339,10,12478, + 12511,147,117,110,105,120,58,119,97,105,116,0,1,8,2049,12339,10,12498,12529,147, + 117,110,105,120,58,107,105,108,108,0,1,9,2049,12339,10,12516,12548,147,117,110, + 105,120,58,112,111,112,101,110,0,1,10,2049,12339,10,12534,12568,147,117,110,105, + 120,58,112,99,108,111,115,101,0,1,11,2049,12339,10,12553,12587,147,117,110,105, + 120,58,119,114,105,116,101,0,1793,12593,2,2049,82,10,1,12589,2049,2076,1,12, + 2049,12339,10,12573,12616,147,117,110,105,120,58,99,104,100,105,114,0,1,13,2049, + 12339,10,12602,12636,147,117,110,105,120,58,103,101,116,101,110,118,0,1,14,2049, + 12339,10,12621,12656,147,117,110,105,120,58,112,117,116,101,110,118,0,1,15,2049, + 12339,10,12641,12675,147,117,110,105,120,58,115,108,101,101,112,0,1,16,2049,12339, + 10,12661,12697,147,117,110,105,120,58,105,111,58,110,58,112,117,116,0,1,17, + 2049,12339,10,12680,12719,147,117,110,105,120,58,105,111,58,115,58,112,117,116,0, + 1,18,2049,12339,10,12702,12737,147,117,110,105,120,58,116,105,109,101,0,1,19, + 2049,12339,10,12724,12758,147,117,110,105,120,58,103,101,116,45,99,119,100,0,2049, + 3708,112,119,100,0,1,12760,1,0,2049,12548,2,2049,9812,2049,3957,4,2049,12568,1, + 0,2049,3708,115,121,115,58,97,114,103,118,0,1,12782,2049,200,2049,161,15,8, + 2049,82,17,2049,3708,47,0,1,12804,2049,4016,10,12742,12838,147,117,110,105,120,58, 99,111,117,110,116,45,102,105,108,101,115,45,105,110,45,99,119,100,0,2049, - 3708,108,115,32,45,49,32,124,32,119,99,32,45,108,0,1,12900,1,0,2049, - 12608,2,2049,9872,2049,3957,2049,221,4,2049,12628,10,12871,12953,147,117,110,105,120,58, + 3708,108,115,32,45,49,32,124,32,119,99,32,45,108,0,1,12840,1,0,2049, + 12548,2,2049,9812,2049,3957,2049,221,4,2049,12568,10,12811,12893,147,117,110,105,120,58, 102,111,114,45,101,97,99,104,45,102,105,108,101,0,2049,3708,108,115,32,45, - 49,32,45,112,0,1,12955,1,0,2049,12608,2049,12898,1793,12988,1793,12983,2049,9872,2049, - 3663,67502597,8,10,1,12976,2049,2088,10,1,12974,2049,2263,2049,12628,3,10,12931,13011,147, + 49,32,45,112,0,1,12895,1,0,2049,12548,2049,12838,1793,12928,1793,12923,2049,9812,2049, + 3663,67502597,8,10,1,12916,2049,2088,10,1,12914,2049,2263,2049,12568,3,10,12871,12951,147, 114,97,110,100,111,109,58,98,121,116,101,0,2049,3708,47,100,101,118,47,117, - 114,97,110,100,111,109,0,1,13013,1,0,2049,9469,1,9506,2049,2088,2049,9488,10, - 12931,13051,147,110,58,114,97,110,100,111,109,0,2049,13011,1,-8,24,2049,13011,17, - 1,-8,24,2049,13011,17,1,8,24,2049,13011,17,10,13039,13080,134,74,85,77,80, - 0,-2023489525,-180170029,1872770499,2012404571,13072,13089,134,107,0,0,13084,13095,134,116,0,0,13090,13102,134, - 115,48,0,0,13096,13109,134,115,49,0,0,13103,13116,134,115,50,0,0,13110,13123, - 134,115,51,0,0,13117,13134,147,114,101,115,101,101,100,0,2,4097,13109,2,4097, - 13116,2,4097,13123,2,4097,13089,4097,13095,10,13124,13157,147,114,111,116,108,0,4097,13089, - 1793,13167,3841,13089,2049,2770,24,10,1,13161,1793,13178,1,32,3841,13089,18,24,10,1, - 13171,2049,2103,22,10,13149,13193,147,114,101,115,42,42,0,3841,13102,1,5,19,1, - 7,2049,13157,1,9,19,10,13184,13214,147,110,101,120,116,0,3841,13109,2,1,-9, - 24,5,3841,13123,3841,13102,3841,13116,386269701,1285,386269701,100926980,85394690,386269701,386270726,4097,13116,4097,13109,4097, - 13102,1,11,2049,13157,4097,13123,10,13206,13257,147,120,111,114,45,101,114,0,386860290,5, - 386860290,5,386860290,5,386860290,5,101058054,101058054,10,13247,13277,147,106,117,109,112,63,0,1793,13284, - 1,13080,17,15,10,1,13279,2049,2076,1,1,4,2049,2770,24,21,10,13268,13305,147, - 105,110,110,101,114,0,1,32,1793,13332,2,2049,8899,2049,13277,1793,13326,1793,13321,2049, - 13257,10,1,13318,2049,2076,10,1,13316,9,2049,13214,10,1,13309,2049,8956,10,13039,13362, + 114,97,110,100,111,109,0,1,12953,1,0,2049,9409,1,9446,2049,2088,2049,9428,10, + 12871,12991,147,110,58,114,97,110,100,111,109,0,2049,12951,1,-8,24,2049,12951,17, + 1,-8,24,2049,12951,17,1,8,24,2049,12951,17,10,12979,13020,134,74,85,77,80, + 0,-2023489525,-180170029,1872770499,2012404571,13012,13029,134,107,0,0,13024,13035,134,116,0,0,13030,13042,134, + 115,48,0,0,13036,13049,134,115,49,0,0,13043,13056,134,115,50,0,0,13050,13063, + 134,115,51,0,0,13057,13074,147,114,101,115,101,101,100,0,2,4097,13049,2,4097, + 13056,2,4097,13063,2,4097,13029,4097,13035,10,13064,13097,147,114,111,116,108,0,4097,13029, + 1793,13107,3841,13029,2049,2770,24,10,1,13101,1793,13118,1,32,3841,13029,18,24,10,1, + 13111,2049,2103,22,10,13089,13133,147,114,101,115,42,42,0,3841,13042,1,5,19,1, + 7,2049,13097,1,9,19,10,13124,13154,147,110,101,120,116,0,3841,13049,2,1,-9, + 24,5,3841,13063,3841,13042,3841,13056,386269701,1285,386269701,100926980,85394690,386269701,386270726,4097,13056,4097,13049,4097, + 13042,1,11,2049,13097,4097,13063,10,13146,13197,147,120,111,114,45,101,114,0,386860290,5, + 386860290,5,386860290,5,386860290,5,101058054,101058054,10,13187,13217,147,106,117,109,112,63,0,1793,13224, + 1,13020,17,15,10,1,13219,2049,2076,1,1,4,2049,2770,24,21,10,13208,13245,147, + 105,110,110,101,114,0,1,32,1793,13272,2,2049,8839,2049,13217,1793,13266,1793,13261,2049, + 13197,10,1,13258,2049,2076,10,1,13256,9,2049,13154,10,1,13249,2049,8896,10,12979,13302, 147,114,97,110,100,111,109,58,120,111,114,111,115,104,105,114,111,49,50,56, - 42,42,0,2049,13214,2049,13193,10,13337,13397,147,114,97,110,100,111,109,58,120,111, + 42,42,0,2049,13154,2049,13133,10,13277,13337,147,114,97,110,100,111,109,58,120,111, 114,111,115,104,105,114,111,49,50,56,42,42,58,106,117,109,112,0,1,0, - 1,13123,1,0,1,13116,1,0,1,13109,1,0,1,13102,1,4,1793,13423,2049,8899, - 2049,13305,3,10,1,13417,2049,8956,269488144,10,13367,13463,147,114,97,110,100,111,109,58, + 1,13063,1,0,1,13056,1,0,1,13049,1,0,1,13042,1,4,1793,13363,2049,8839, + 2049,13245,3,10,1,13357,2049,8896,269488144,10,13307,13403,147,114,97,110,100,111,109,58, 120,111,114,111,115,104,105,114,111,49,50,56,42,42,58,115,101,116,45,115, - 101,101,100,0,2049,13134,1,100,1793,13472,2049,13214,10,1,13469,2049,2263,10,13429,13512, + 101,101,100,0,2049,13074,1,100,1793,13412,2049,13154,10,1,13409,2049,2263,10,13369,13452, 147,114,97,110,100,111,109,58,120,111,114,111,115,104,105,114,111,49,50,56, - 42,42,58,116,101,115,116,45,115,101,101,100,0,4097,13102,4097,13109,4097,13116,4097, - 13123,10,13477,13531,134,83,116,97,116,101,115,0,0,0,0,0,0,0,0,0, + 42,42,58,116,101,115,116,45,115,101,101,100,0,4097,13042,4097,13049,4097,13056,4097, + 13063,10,13417,13471,134,83,116,97,116,101,115,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -707,126 +704,126 @@ int32_t ngaImage[] = { 1793,16369,16547,16589,201906,0,10,1,10,2,10,3,10,4,10,5, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13521,14165,134, - 73,110,100,101,120,0,0,14156,14175,147,114,101,115,101,116,0,1,13531,67502597,2049, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13461,14105,134, + 73,110,100,101,120,0,0,14096,14115,147,114,101,115,101,116,0,1,13471,67502597,2049, 2932,17,2,15,1,30,24,4,15,23,1,1812433253,19,67502597,17,2049,2552,21,4,1, - 13531,17,16,10,14166,14217,147,114,97,110,100,111,109,105,122,101,100,0,1,1, - 1793,14231,2,2049,14175,2049,2919,2,1,624,14,10,1,14221,2049,2234,3,10,14203,14242, - 147,121,0,2,2049,2919,1,624,788,1,13531,17,15,2049,2552,21,4,1,13531,17, - 15,1,-31,24,17,10,14237,14276,147,97,108,116,101,114,101,100,0,2,2049,14242, - 2,1,1,21,1,1073741823,19,1793,14304,1,2,197652,67502597,1,397,17,1,624,788,1, - 13531,17,15,23,10,1,14288,2049,2076,23,4,1,13531,17,16,10,14265,14328,147,115, - 99,114,97,109,98,108,101,100,0,1,0,1793,14342,2,2049,14276,2049,2919,2,1, - 624,14,10,1,14332,2049,2234,3,10,13477,14376,147,114,97,110,100,111,109,58,109, - 101,114,115,101,110,110,101,58,115,101,116,45,115,101,101,100,0,4097,13531,1, - 0,4097,14165,2049,14217,10,14348,14404,147,114,97,110,100,111,109,58,109,101,114,115, - 101,110,110,101,0,3841,14165,2049,2578,1,14328,9,3841,14165,1,13531,17,15,2,1, + 13471,17,16,10,14106,14157,147,114,97,110,100,111,109,105,122,101,100,0,1,1, + 1793,14171,2,2049,14115,2049,2919,2,1,624,14,10,1,14161,2049,2234,3,10,14143,14182, + 147,121,0,2,2049,2919,1,624,788,1,13471,17,15,2049,2552,21,4,1,13471,17, + 15,1,-31,24,17,10,14177,14216,147,97,108,116,101,114,101,100,0,2,2049,14182, + 2,1,1,21,1,1073741823,19,1793,14244,1,2,197652,67502597,1,397,17,1,624,788,1, + 13471,17,15,23,10,1,14228,2049,2076,23,4,1,13471,17,16,10,14205,14268,147,115, + 99,114,97,109,98,108,101,100,0,1,0,1793,14282,2,2049,14216,2049,2919,2,1, + 624,14,10,1,14272,2049,2234,3,10,13417,14316,147,114,97,110,100,111,109,58,109, + 101,114,115,101,110,110,101,58,115,101,116,45,115,101,101,100,0,4097,13471,1, + 0,4097,14105,2049,14157,10,14288,14344,147,114,97,110,100,111,109,58,109,101,114,115, + 101,110,110,101,0,3841,14105,2049,2578,1,14268,9,3841,14105,1,13471,17,15,2,1, 11,24,23,2,1,-7,24,1,1073741823,21,23,2,1,-15,24,1,2011365376,21,23,2, - 1,18,24,23,3841,14165,2049,2919,1,624,788,4097,14165,10,14385,1024,134,84,73,66, - 0,14453,14475,134,105,111,58,75,101,121,98,111,97,114,100,0,0,14460,14488,147, - 105,100,101,110,116,105,102,121,0,3841,14475,2049,2578,1793,14555,1,1,2049,9107,2, - 2049,2613,1793,14543,3,2049,3708,73,79,32,68,69,86,73,67,69,32,84,89,80, - 69,32,48,48,48,49,32,78,79,84,32,70,79,85,78,68,0,1,14506,2049, - 9200,2049,9163,10,1,14503,1793,14550,4097,14475,10,1,14547,2049,67,10,1,14494,9,10, - 14453,14568,147,99,58,103,101,116,0,2049,14488,3841,14475,2049,9081,10,14559,14585,147,103, - 97,116,104,101,114,0,2,1793,14592,1,8,11,10,1,14588,1793,14600,1,127,11, - 10,1,14596,2049,2103,22,1793,14609,3,10,1,14607,1793,14616,2049,3394,10,1,14613,2049, - 67,10,14575,14630,147,99,121,99,108,101,0,2049,14568,2049,2066,4,8,2049,2731,25, - 3,2049,14585,1,14630,7,10,14559,14661,147,112,97,114,115,101,45,117,110,116,105, - 108,0,1793,14673,2049,3689,2049,3486,2049,14630,771,2049,3360,10,1,14663,2049,3510,10,14646, - 14687,147,115,58,103,101,116,0,1793,14709,1793,14695,1,10,11,10,1,14691,1793,14703, - 1,13,11,10,1,14699,2049,2103,22,10,1,14689,2049,14661,10,14678,14730,134,105,111, - 58,83,99,114,105,112,116,105,110,103,0,4,14714,14743,147,105,100,101,110,116, - 105,102,121,0,3841,14730,2049,2578,1793,14810,1,9,2049,9107,2,2049,2613,1793,14798,3, + 1,18,24,23,3841,14105,2049,2919,1,624,788,4097,14105,10,14325,1024,134,84,73,66, + 0,14393,14415,134,105,111,58,75,101,121,98,111,97,114,100,0,0,14400,14428,147, + 105,100,101,110,116,105,102,121,0,3841,14415,2049,2578,1793,14495,1,1,2049,9047,2, + 2049,2613,1793,14483,3,2049,3708,73,79,32,68,69,86,73,67,69,32,84,89,80, + 69,32,48,48,48,49,32,78,79,84,32,70,79,85,78,68,0,1,14446,2049, + 9140,2049,9103,10,1,14443,1793,14490,4097,14415,10,1,14487,2049,67,10,1,14434,9,10, + 14393,14508,147,99,58,103,101,116,0,2049,14428,3841,14415,2049,9021,10,14499,14525,147,103, + 97,116,104,101,114,0,2,1793,14532,1,8,11,10,1,14528,1793,14540,1,127,11, + 10,1,14536,2049,2103,22,1793,14549,3,10,1,14547,1793,14556,2049,3394,10,1,14553,2049, + 67,10,14515,14570,147,99,121,99,108,101,0,2049,14508,2049,2066,4,8,2049,2731,25, + 3,2049,14525,1,14570,7,10,14499,14601,147,112,97,114,115,101,45,117,110,116,105, + 108,0,1793,14613,2049,3689,2049,3486,2049,14570,771,2049,3360,10,1,14603,2049,3510,10,14586, + 14627,147,115,58,103,101,116,0,1793,14649,1793,14635,1,10,11,10,1,14631,1793,14643, + 1,13,11,10,1,14639,2049,2103,22,10,1,14629,2049,14601,10,14618,14670,134,105,111, + 58,83,99,114,105,112,116,105,110,103,0,4,14654,14683,147,105,100,101,110,116, + 105,102,121,0,3841,14670,2049,2578,1793,14750,1,9,2049,9047,2,2049,2613,1793,14738,3, 2049,3708,73,79,32,68,69,86,73,67,69,32,84,89,80,69,32,48,48,48, - 57,32,78,79,84,32,70,79,85,78,68,0,1,14761,2049,9200,2049,9163,10,1, - 14758,1793,14805,4097,14730,10,1,14802,2049,67,10,1,14749,9,10,14678,14826,147,115,121, - 115,58,97,114,103,99,0,2049,14743,1,0,3841,14730,2049,9081,10,14814,14847,147,115, - 121,115,58,97,114,103,118,0,2049,3689,4,2049,14743,1,1,3841,14730,2049,9081,10, - 14835,14870,147,105,110,99,108,117,100,101,0,2049,14743,1,2,3841,14730,2049,9081,10, - 14859,14891,147,115,121,115,58,110,97,109,101,0,2049,3689,2049,14743,1,3,3841,14730, - 2049,9081,10,14879,14924,134,70,117,108,108,83,99,114,101,101,110,76,105,115,116, - 101,110,101,114,0,0,14902,14935,134,66,117,102,102,101,114,0,0,10,14925,14944, - 134,80,116,114,0,0,10,14937,14959,147,116,101,114,109,105,110,97,116,101,0, - 1,0,3841,14944,16,10,14946,14981,147,98,117,102,102,101,114,58,115,116,97,114, - 116,0,3841,14935,10,14965,14998,147,98,117,102,102,101,114,58,101,110,100,0,3841, - 14944,10,14984,15015,147,98,117,102,102,101,114,58,97,100,100,0,2049,14998,16,1, - 14944,2049,3020,2049,14959,10,15001,15039,147,98,117,102,102,101,114,58,103,101,116,0, - 1,14944,2049,3035,2049,14998,15,2049,14959,10,15025,15065,147,98,117,102,102,101,114,58, - 101,109,112,116,121,0,2049,14981,4097,14944,2049,14959,10,15049,15086,147,98,117,102,102, - 101,114,58,115,101,116,0,4097,14935,2049,15065,10,15072,15105,147,119,104,105,116,101, - 44,98,108,117,101,0,1,27,2049,9150,2049,3708,91,49,59,51,55,59,52,52, - 109,0,1,15111,2049,9200,10,15091,15141,147,119,104,105,116,101,44,98,108,97,99, - 107,0,1,27,2049,9150,2049,3708,91,48,59,51,55,59,52,48,109,0,1,15147, - 2049,9200,10,15126,15176,147,100,117,109,112,45,115,116,97,99,107,0,2049,1556,25, - 1,5,2049,2831,2049,3708,124,32,0,1,15185,2049,9200,1,1,1793,15214,2049,3708,97, - 0,1,15198,2049,3708,97,97,0,1,15204,2049,7020,2049,9214,10,1,15196,2049,2293,1, - 2,1793,15254,2049,3708,97,98,0,1,15224,2049,3708,97,98,98,97,0,1,15231,2049, - 7020,1,2,1793,15249,2049,9214,2049,9174,10,1,15244,2049,2263,10,1,15222,2049,2293,1, - 3,1793,15297,2049,3708,97,98,99,0,1,15264,2049,3708,97,98,99,99,98,97,0, - 1,15272,2049,7020,1,3,1793,15292,2049,9214,2049,9174,10,1,15287,2049,2263,10,1,15262, - 2049,2293,1,4,1793,15343,2049,3708,97,98,99,100,0,1,15307,2049,3708,97,98,99, - 100,100,99,98,97,0,1,15316,2049,7020,1,4,1793,15338,2049,9214,2049,9174,10,1, - 15333,2049,2263,10,1,15305,2049,2293,1,5,1793,15392,2049,3708,97,98,99,100,101,0, - 1,15353,2049,3708,97,98,99,100,101,101,100,99,98,97,0,1,15363,2049,7020,1, - 5,1793,15387,2049,9214,2049,9174,10,1,15382,2049,2263,10,1,15351,2049,2293,10,15162,15408, - 147,116,111,112,45,114,111,119,0,1,27,2049,9150,2049,3708,91,49,59,48,72, - 0,1,15414,2049,9200,10,15397,15438,147,99,108,101,97,114,45,114,111,119,0,1, - 80,1793,15445,2049,9174,10,1,15442,2049,2263,10,15425,15457,147,116,111,112,0,2049,15408, - 2049,15105,2049,15438,2049,15408,2049,9277,2049,1556,2049,2932,2049,3708,83,80,58,37,110,32, - 70,82,69,69,58,37,110,32,0,1,15473,2049,6851,2049,9200,2049,15176,10,15450,15511, - 147,98,111,116,116,111,109,45,114,111,119,0,1,27,2049,9150,2049,3708,91,50, - 52,59,48,72,0,1,15517,2049,9200,10,15497,15538,147,105,110,112,117,116,0,2049, - 15511,2049,15105,2049,15438,2049,15511,10,15529,15557,147,111,117,116,112,117,116,0,2049,15511, - 2049,15141,2049,15438,2049,15511,10,15547,15572,134,73,110,0,0,15566,15584,147,100,105,115, - 99,97,114,100,0,2049,15039,3,10,15573,15595,147,114,117,98,0,1,8,2049,9150, - 2049,9174,1,8,2049,9150,10,15588,15618,147,101,118,97,108,117,97,116,101,0,1, - 1024,2049,367,10,15606,15632,147,114,101,115,101,116,0,1,0,4097,15572,2049,15065,10, - 15623,15649,147,104,97,110,100,108,101,0,1,32,1793,15670,3841,15572,25,3,2049,15557, - 2049,15618,2049,9163,2049,15632,2049,15457,2049,15538,10,1,15653,2049,2293,1,13,1793,15695,3841, - 15572,25,3,2049,15557,2049,15618,2049,9163,2049,15632,2049,15457,2049,15538,10,1,15678,2049,2293, - 1,10,1793,15720,3841,15572,25,3,2049,15557,2049,15618,2049,9163,2049,15632,2049,15457,2049,15538, - 10,1,15703,2049,2293,1,127,1793,15741,3841,15572,25,3,2049,15584,2049,15595,1,15572,2049, - 3035,10,1,15728,2049,2293,1,8,1793,15762,3841,15572,25,3,2049,15584,2049,15595,1,15572, - 2049,3035,10,1,15749,2049,2293,2,2049,9150,2049,15015,1,15572,2049,3020,10,15639,15787,147, - 112,114,111,99,101,115,115,0,1,1024,2049,15086,2049,14568,2049,15649,3841,15572,1,80, - 11,1793,15809,1,0,4097,15572,2049,15538,10,1,15802,9,1,15791,7,10,15776,15824,147, + 57,32,78,79,84,32,70,79,85,78,68,0,1,14701,2049,9140,2049,9103,10,1, + 14698,1793,14745,4097,14670,10,1,14742,2049,67,10,1,14689,9,10,14618,14766,147,115,121, + 115,58,97,114,103,99,0,2049,14683,1,0,3841,14670,2049,9021,10,14754,14787,147,115, + 121,115,58,97,114,103,118,0,2049,3689,4,2049,14683,1,1,3841,14670,2049,9021,10, + 14775,14810,147,105,110,99,108,117,100,101,0,2049,14683,1,2,3841,14670,2049,9021,10, + 14799,14831,147,115,121,115,58,110,97,109,101,0,2049,3689,2049,14683,1,3,3841,14670, + 2049,9021,10,14819,14864,134,70,117,108,108,83,99,114,101,101,110,76,105,115,116, + 101,110,101,114,0,0,14842,14875,134,66,117,102,102,101,114,0,0,10,14865,14884, + 134,80,116,114,0,0,10,14877,14899,147,116,101,114,109,105,110,97,116,101,0, + 1,0,3841,14884,16,10,14886,14921,147,98,117,102,102,101,114,58,115,116,97,114, + 116,0,3841,14875,10,14905,14938,147,98,117,102,102,101,114,58,101,110,100,0,3841, + 14884,10,14924,14955,147,98,117,102,102,101,114,58,97,100,100,0,2049,14938,16,1, + 14884,2049,3020,2049,14899,10,14941,14979,147,98,117,102,102,101,114,58,103,101,116,0, + 1,14884,2049,3035,2049,14938,15,2049,14899,10,14965,15005,147,98,117,102,102,101,114,58, + 101,109,112,116,121,0,2049,14921,4097,14884,2049,14899,10,14989,15026,147,98,117,102,102, + 101,114,58,115,101,116,0,4097,14875,2049,15005,10,15012,15045,147,119,104,105,116,101, + 44,98,108,117,101,0,1,27,2049,9090,2049,3708,91,49,59,51,55,59,52,52, + 109,0,1,15051,2049,9140,10,15031,15081,147,119,104,105,116,101,44,98,108,97,99, + 107,0,1,27,2049,9090,2049,3708,91,48,59,51,55,59,52,48,109,0,1,15087, + 2049,9140,10,15066,15116,147,100,117,109,112,45,115,116,97,99,107,0,2049,1556,25, + 1,5,2049,2831,2049,3708,124,32,0,1,15125,2049,9140,1,1,1793,15154,2049,3708,97, + 0,1,15138,2049,3708,97,97,0,1,15144,2049,7020,2049,9154,10,1,15136,2049,2293,1, + 2,1793,15194,2049,3708,97,98,0,1,15164,2049,3708,97,98,98,97,0,1,15171,2049, + 7020,1,2,1793,15189,2049,9154,2049,9114,10,1,15184,2049,2263,10,1,15162,2049,2293,1, + 3,1793,15237,2049,3708,97,98,99,0,1,15204,2049,3708,97,98,99,99,98,97,0, + 1,15212,2049,7020,1,3,1793,15232,2049,9154,2049,9114,10,1,15227,2049,2263,10,1,15202, + 2049,2293,1,4,1793,15283,2049,3708,97,98,99,100,0,1,15247,2049,3708,97,98,99, + 100,100,99,98,97,0,1,15256,2049,7020,1,4,1793,15278,2049,9154,2049,9114,10,1, + 15273,2049,2263,10,1,15245,2049,2293,1,5,1793,15332,2049,3708,97,98,99,100,101,0, + 1,15293,2049,3708,97,98,99,100,101,101,100,99,98,97,0,1,15303,2049,7020,1, + 5,1793,15327,2049,9154,2049,9114,10,1,15322,2049,2263,10,1,15291,2049,2293,10,15102,15348, + 147,116,111,112,45,114,111,119,0,1,27,2049,9090,2049,3708,91,49,59,48,72, + 0,1,15354,2049,9140,10,15337,15378,147,99,108,101,97,114,45,114,111,119,0,1, + 80,1793,15385,2049,9114,10,1,15382,2049,2263,10,15365,15397,147,116,111,112,0,2049,15348, + 2049,15045,2049,15378,2049,15348,2049,9217,2049,1556,2049,2932,2049,3708,83,80,58,37,110,32, + 70,82,69,69,58,37,110,32,0,1,15413,2049,6851,2049,9140,2049,15116,10,15390,15451, + 147,98,111,116,116,111,109,45,114,111,119,0,1,27,2049,9090,2049,3708,91,50, + 52,59,48,72,0,1,15457,2049,9140,10,15437,15478,147,105,110,112,117,116,0,2049, + 15451,2049,15045,2049,15378,2049,15451,10,15469,15497,147,111,117,116,112,117,116,0,2049,15451, + 2049,15081,2049,15378,2049,15451,10,15487,15512,134,73,110,0,0,15506,15524,147,100,105,115, + 99,97,114,100,0,2049,14979,3,10,15513,15535,147,114,117,98,0,1,8,2049,9090, + 2049,9114,1,8,2049,9090,10,15528,15558,147,101,118,97,108,117,97,116,101,0,1, + 1024,2049,367,10,15546,15572,147,114,101,115,101,116,0,1,0,4097,15512,2049,15005,10, + 15563,15589,147,104,97,110,100,108,101,0,1,32,1793,15610,3841,15512,25,3,2049,15497, + 2049,15558,2049,9103,2049,15572,2049,15397,2049,15478,10,1,15593,2049,2293,1,13,1793,15635,3841, + 15512,25,3,2049,15497,2049,15558,2049,9103,2049,15572,2049,15397,2049,15478,10,1,15618,2049,2293, + 1,10,1793,15660,3841,15512,25,3,2049,15497,2049,15558,2049,9103,2049,15572,2049,15397,2049,15478, + 10,1,15643,2049,2293,1,127,1793,15681,3841,15512,25,3,2049,15524,2049,15535,1,15512,2049, + 3035,10,1,15668,2049,2293,1,8,1793,15702,3841,15512,25,3,2049,15524,2049,15535,1,15512, + 2049,3035,10,1,15689,2049,2293,2,2049,9090,2049,14955,1,15512,2049,3020,10,15579,15727,147, + 112,114,111,99,101,115,115,0,1,1024,2049,15026,2049,14508,2049,15589,3841,15512,1,80, + 11,1793,15749,1,0,4097,15512,2049,15478,10,1,15742,9,1,15731,7,10,15716,15764,147, 105,110,105,116,0,2049,3708,115,116,116,121,32,99,98,114,101,97,107,32,45, - 101,99,104,111,0,1,15826,2049,12421,10,15816,15857,147,101,120,105,116,0,2049,3708, - 115,116,116,121,32,45,99,98,114,101,97,107,32,101,99,104,111,0,1,15859, - 2049,12421,1,0,2049,12533,10,14902,15895,147,99,108,101,97,114,0,1,27,2049,9150, - 2049,3708,91,50,74,0,1,15901,2049,9200,1,27,2049,9150,2049,3708,91,48,59,48, - 72,0,1,15915,2049,9200,10,15886,15951,147,108,105,115,116,101,110,58,102,117,108, - 108,115,99,114,101,101,110,58,98,121,101,0,2049,15857,10,15926,15975,147,108,105, - 115,116,101,110,58,102,117,108,108,115,99,114,101,101,110,0,2049,15824,2049,15895, - 2049,15457,2049,15538,2049,15787,10,15954,15996,134,78,111,69,99,104,111,0,0,15986,16008, - 147,118,101,114,115,105,111,110,0,3841,4,1,100,20,2049,9214,1,46,2049,9150, - 2049,9214,10,15997,16030,147,101,111,108,63,0,1793,16036,1,13,11,10,1,16032,1793, - 16044,1,10,11,10,1,16040,1793,16052,1,32,11,10,1,16048,2049,2140,22,22,10, - 16022,16069,147,118,97,108,105,100,63,0,2,2049,82,2049,2594,10,16059,16081,147,111, - 107,0,3841,15996,2049,2731,25,3,2049,1818,1793,16104,2049,9163,2049,3708,79,107,32,0, - 1,16095,2049,9200,10,1,16091,2049,73,10,16075,16122,147,99,104,101,99,107,45,101, - 111,102,0,2,1793,16129,1,-1,11,10,1,16125,1793,16137,1,4,11,10,1,16133, - 2049,2103,22,1793,16159,2049,3708,98,121,101,0,1,16146,2049,200,2049,161,15,8,10, - 1,16144,9,10,16109,16175,147,99,104,101,99,107,45,98,115,0,2,1793,16182,1, - 8,11,10,1,16178,1793,16190,1,127,11,10,1,16186,2049,2103,22,1793,16203,2049,3418, - 2049,3418,771,10,1,16197,9,10,16163,16216,147,115,58,103,101,116,0,1793,16245,1, - 1024,2049,3486,1793,16236,2049,14568,2,2049,3394,2049,16122,2049,16175,2049,16030,10,1,16224,2049, - 2234,2049,3360,2049,3801,10,1,16218,2049,3510,10,15986,16260,147,98,97,110,110,101,114, - 0,3841,15996,2049,2731,25,3,2049,3708,82,69,84,82,79,32,49,50,32,40,114, - 120,45,0,1,16268,2049,9200,2049,16008,1,41,2049,9150,2049,9163,2049,1543,2049,9214,2049, + 101,99,104,111,0,1,15766,2049,12361,10,15756,15797,147,101,120,105,116,0,2049,3708, + 115,116,116,121,32,45,99,98,114,101,97,107,32,101,99,104,111,0,1,15799, + 2049,12361,1,0,2049,12473,10,14842,15835,147,99,108,101,97,114,0,1,27,2049,9090, + 2049,3708,91,50,74,0,1,15841,2049,9140,1,27,2049,9090,2049,3708,91,48,59,48, + 72,0,1,15855,2049,9140,10,15826,15891,147,108,105,115,116,101,110,58,102,117,108, + 108,115,99,114,101,101,110,58,98,121,101,0,2049,15797,10,15866,15915,147,108,105, + 115,116,101,110,58,102,117,108,108,115,99,114,101,101,110,0,2049,15764,2049,15835, + 2049,15397,2049,15478,2049,15727,10,15894,15936,134,78,111,69,99,104,111,0,0,15926,15948, + 147,118,101,114,115,105,111,110,0,3841,4,1,100,20,2049,9154,1,46,2049,9090, + 2049,9154,10,15937,15970,147,101,111,108,63,0,1793,15976,1,13,11,10,1,15972,1793, + 15984,1,10,11,10,1,15980,1793,15992,1,32,11,10,1,15988,2049,2140,22,22,10, + 15962,16009,147,118,97,108,105,100,63,0,2,2049,82,2049,2594,10,15999,16021,147,111, + 107,0,3841,15936,2049,2731,25,3,2049,1818,1793,16044,2049,9103,2049,3708,79,107,32,0, + 1,16035,2049,9140,10,1,16031,2049,73,10,16015,16062,147,99,104,101,99,107,45,101, + 111,102,0,2,1793,16069,1,-1,11,10,1,16065,1793,16077,1,4,11,10,1,16073, + 2049,2103,22,1793,16099,2049,3708,98,121,101,0,1,16086,2049,200,2049,161,15,8,10, + 1,16084,9,10,16049,16115,147,99,104,101,99,107,45,98,115,0,2,1793,16122,1, + 8,11,10,1,16118,1793,16130,1,127,11,10,1,16126,2049,2103,22,1793,16143,2049,3418, + 2049,3418,771,10,1,16137,9,10,16103,16156,147,115,58,103,101,116,0,1793,16185,1, + 1024,2049,3486,1793,16176,2049,14508,2,2049,3394,2049,16062,2049,16115,2049,15970,10,1,16164,2049, + 2234,2049,3360,2049,3801,10,1,16158,2049,3510,10,15926,16200,147,98,97,110,110,101,114, + 0,3841,15936,2049,2731,25,3,2049,3708,82,69,84,82,79,32,49,50,32,40,114, + 120,45,0,1,16208,2049,9140,2049,15948,1,41,2049,9090,2049,9103,2049,1543,2049,9154,2049, 3708,32,77,65,88,44,32,84,73,66,32,64,32,49,48,50,53,44,32,72, - 101,97,112,32,64,32,0,1,16300,2049,9200,2049,1847,2049,9214,2049,9163,10,16250,16344, - 147,98,121,101,0,3841,14924,1793,16351,2049,15951,10,1,16348,9,1,0,2049,12533,10, - 16337,16369,147,108,105,115,116,101,110,0,3841,14924,1793,16376,2049,15975,10,1,16373,2049, - 2505,2049,16081,2049,16216,2049,16069,1793,16393,2049,367,2049,16081,10,1,16388,1793,16399,3,10, - 1,16397,2049,67,1,16382,7,10,16359,16421,147,105,109,97,103,101,58,115,97,118, - 101,0,1,1000,2049,9107,2049,9081,10,16407,16439,147,100,58,119,111,114,100,115,0, - 1793,16448,2049,165,2049,9200,2049,9174,10,1,16441,2049,7095,10,16428,16469,147,100,58,119, - 111,114,100,115,45,119,105,116,104,0,2049,1847,2049,4732,1793,16500,2049,165,2,2049, - 1847,2049,4334,1793,16489,2049,9200,2049,9174,10,1,16484,1793,16495,3,10,1,16493,2049,67, - 10,1,16475,2049,7095,10,16453,16524,147,100,105,115,112,108,97,121,45,105,102,45, - 108,101,102,116,0,2,2049,1847,2049,4648,1793,16536,2049,9200,2049,9174,10,1,16531,1793, - 16542,3,10,1,16540,2049,67,10,16453,16573,147,100,58,119,111,114,100,115,45,98, - 101,103,105,110,110,105,110,103,45,119,105,116,104,0,2049,1847,2049,4732,1793,16584, - 2049,165,2049,16524,10,1,16579,2049,7095,10,0 }; + 101,97,112,32,64,32,0,1,16240,2049,9140,2049,1847,2049,9154,2049,9103,10,16190,16284, + 147,98,121,101,0,3841,14864,1793,16291,2049,15891,10,1,16288,9,1,0,2049,12473,10, + 16277,16309,147,108,105,115,116,101,110,0,3841,14864,1793,16316,2049,15915,10,1,16313,2049, + 2505,2049,16021,2049,16156,2049,16009,1793,16333,2049,367,2049,16021,10,1,16328,1793,16339,3,10, + 1,16337,2049,67,1,16322,7,10,16299,16361,147,105,109,97,103,101,58,115,97,118, + 101,0,1,1000,2049,9047,2049,9021,10,16347,16379,147,100,58,119,111,114,100,115,0, + 1793,16388,2049,165,2049,9140,2049,9114,10,1,16381,2049,7095,10,16368,16409,147,100,58,119, + 111,114,100,115,45,119,105,116,104,0,2049,1847,2049,4732,1793,16440,2049,165,2,2049, + 1847,2049,4334,1793,16429,2049,9140,2049,9114,10,1,16424,1793,16435,3,10,1,16433,2049,67, + 10,1,16415,2049,7095,10,16393,16464,147,100,105,115,112,108,97,121,45,105,102,45, + 108,101,102,116,0,2,2049,1847,2049,4648,1793,16476,2049,9140,2049,9114,10,1,16471,1793, + 16482,3,10,1,16480,2049,67,10,16393,16513,147,100,58,119,111,114,100,115,45,98, + 101,103,105,110,110,105,110,103,45,119,105,116,104,0,2049,1847,2049,4732,1793,16524, + 2049,165,2049,16464,10,1,16519,2049,7095,10,0 }; diff --git a/literate/RetroForth.md b/literate/RetroForth.md index b496750..5493fb5 100644 --- a/literate/RetroForth.md +++ b/literate/RetroForth.md @@ -29,7 +29,7 @@ The main namespaces are: | namespace | words related to | | ---------- | ------------------ | | ASCII | ASCII Constants | - | array | arrays | + | a | arrays | | c | characters | | compile | compiler functions | | d | dictionary headers | @@ -195,7 +195,7 @@ Example: :pre.min (a-an) (comparison <? <-or-gt? set-hook ) - (begin_with #-1 !Index n:min !Value dup array:length ) ; + (begin_with #-1 !Index n:min !Value dup a:length ) ; ~~~ :( ; immediate @@ -1292,30 +1292,30 @@ represented in memory as: Since the count comes first, a simple `fetch` will suffice to get it, but for completeness (and to allow for future changes), -we wrap this as `array:length`: +we wrap this as `a:length`: ~~~ -:array:length (a-n) fetch ; +:a:length (a-n) fetch ; ~~~ The first couple of words are used to create arrays. The first, -`array:counted-results` executes a quote which returns values +`a:counted-results` executes a quote which returns values and a count. It then creates an array with the provided data. ~~~ -:array:counted-results (q-a) +:a:counted-results (q-a) call here [ dup , &, times ] dip ; ~~~ -The second, `array:from-string`, creates a new string with the +The second, `a:from-string`, creates a new string with the characters in given a string. ~~~ -:array:from-string (s-a) +:a:from-string (s-a) here [ dup s:length , [ , ] s:for-each ] dip ; ~~~ -A very crucial piece is `array:for-each`. This runs a quote once +A very crucial piece is `a:for-each`. This runs a quote once against each value in an array. This is leveraged to implement additional combinators. @@ -1323,38 +1323,38 @@ additional combinators. {{ 'Q var ---reveal--- - :array:for-each (aq-) + :a:for-each (aq-) &Q [ !Q fetch-next [ fetch-next swap [ @Q call ] dip ] times drop ] v:preserve ; }} ~~~ -With this I can easily define `array:dup` to make a copy of an +With this I can easily define `a:dup` to make a copy of an array. ~~~ -:array:dup (a-a) - here [ dup fetch , [ , ] array:for-each ] dip ; +:a:dup (a-a) + here [ dup fetch , [ , ] a:for-each ] dip ; ~~~ -Next is `array:filter`, which is extracts matching values from +Next is `a:filter`, which is extracts matching values from an array. This is used like: { #1 #2 #3 #4 #5 #6 #7 #8 } - [ n:even? ] array:filter + [ n:even? ] a:filter It returns a new array with the values that the quote returned a `TRUE` flag for. ~~~ -:array:filter (aq-) +:a:filter (aq-) [ over [ call ] dip swap [ , ] [ drop ] choose ] curry - here [ over fetch , array:for-each ] dip + here [ over fetch , a:for-each ] dip here over - n:dec over store ; ~~~ -Next are `array:contains?` and `array:contains-string?` which +Next are `a:contains?` and `a:contains-string?` which compare a given value to each item in the array and returns a flag. @@ -1362,70 +1362,70 @@ a flag. {{ 'F var ---reveal--- - :array:contains? (na-f) + :a:contains? (na-f) &F v:off - [ over eq? @F or !F ] array:for-each + [ over eq? @F or !F ] a:for-each drop @F ; - :array:contains-string? (sa-f) + :a:contains-string? (sa-f) &F v:off - [ over s:eq? @F or !F ] array:for-each + [ over s:eq? @F or !F ] a:for-each drop @F ; }} ~~~ -I implemented `array:map` to apply a quotation to each item in +I implemented `a:map` to apply a quotation to each item in an array and construct a new array from the returned values. Example: { #1 #2 #3 } - [ #10 * ] array:map + [ #10 * ] a:map ~~~ -:array:map (aq-a) +:a:map (aq-a) [ call , ] curry - here [ over fetch , array:for-each ] dip ; + here [ over fetch , a:for-each ] dip ; ~~~ -You can use `array:reverse` to make a copy of an array with the +You can use `a:reverse` to make a copy of an array with the values reversed. ~~~ -:array:reverse (a-a) +:a:reverse (a-a) here [ fetch-next [ + n:dec ] sip dup , [ dup fetch , n:dec ] times drop ] dip ; ~~~ -`array:nth` provides a quick means of adjusting an array and +`a:nth` provides a quick means of adjusting an array and offset into an address for use with `fetch` and `store`. ~~~ -:array:nth (an-a) +:a:nth (an-a) + n:inc ; ~~~ -`array:reduce` takes an array, a starting value, and a quote. It +`a:reduce` takes an array, a starting value, and a quote. It executes the quote once for each item in the array, passing the item and the value to the quote. The quote should consume both and return a new value. ~~~ -:array:reduce (pnp-n) - [ swap ] dip array:for-each ; +:a:reduce (pnp-n) + [ swap ] dip a:for-each ; ~~~ When making an array, I often want the values in the original -order. The `array:counted-results array:reverse` is a bit long, so -I'm defining a new `array:make` which wraps these. +order. The `a:counted-results a:reverse` is a bit long, so +I'm defining a new `a:make` which wraps these. ~~~ -:array:make (q-a) - array:counted-results array:reverse ; +:a:make (q-a) + a:counted-results a:reverse ; :{ (-) |[ |depth |[ ; immediate -:} (-a) |] |dip |depth |swap |- |n:dec |] |array:make ; immediate +:} (-a) |] |dip |depth |swap |- |n:dec |] |a:make ; immediate ~~~ ## Muri: an assembler @@ -1687,14 +1687,14 @@ And finally, tie it all together into the single exposed word as{ 'polisuzr i #1 d }as again ; ---reveal--- - :array:eq? (aa-f) + :a:eq? (aa-f) as{ 'lilist.. i #-1 d &Flag d }as as{ 'lica.... i &compare d }as as{ 'lixolicc i #-1 d ¬-equal d }as as{ 'lica.... i &length d }as as{ 'lica.... i &loop d }as as{ 'drdrlife i &Flag d }as ; - :array:-eq? (aa-f) array:eq? not ; + :a:-eq? (aa-f) a:eq? not ; }} ~~~ diff --git a/make-book.retro b/make-book.retro index 4c8c2f9..a5e7510 100755 --- a/make-book.retro +++ b/make-book.retro @@ -67,7 +67,7 @@ for me. :import here swap BOOK-BASE s:prepend file:slurp ; :\n ASCII:LF @Out file:write ; :add-to-book here [ @Out file:write ] s:for-each \n ; -:process-files [ import add-to-book ] array:for-each ; +:process-files [ import add-to-book ] a:for-each ; :open 'RETRO-Book.md file:open !Out ; :close @Out file:close ; :assemble open process-files close ; @@ -78,7 +78,7 @@ for me. :open 'gophermap file:open !Out ; :close @Out file:close ; :ENTRY '0%s\t/book/%s\tforth.works\t70\n ; -:process-files [ dup ENTRY s:format [ @Out file:write ] s:for-each ] array:for-each ; +:process-files [ dup ENTRY s:format [ @Out file:write ] s:for-each ] a:for-each ; :gophermap open process-files close ; ~~~ diff --git a/ngaImage b/ngaImage index 907595c..b2ced99 100644 Binary files a/ngaImage and b/ngaImage differ diff --git a/retro-describe.forth b/retro-describe.forth index a1afed5..ffeac26 100755 --- a/retro-describe.forth +++ b/retro-describe.forth @@ -76,7 +76,7 @@ simple code. [ 'field: s:prepend d:create dup compile:lit &select compile:call compile:ret - &class:word reclass n:inc ] array:for-each drop + &class:word reclass n:inc ] a:for-each drop }} ~~~ diff --git a/words.tsv b/words.tsv index ddb1197..6e09831 100644 --- a/words.tsv +++ b/words.tsv @@ -66,24 +66,24 @@ TempStrings -a - - Variable. Holds the number of temporary strings. class:data Version -a - - Variable. This stores the version number. class:data {n/a} {n/a} global all [ - - - Begin a quotation. class:macro {n/a} {n/a} global all ] - - - End a quotation. class:macro {n/a} {n/a} global all +a:-eq? aa-f - - Compare all values in the array. Return `FALSE` if all values are equal or `TRUE` otherwise. This assumes the array contains only numeric values. class:word {n/a} {n/a} a all +a:contains-string? sa-f - - Return `TRUE` if the string value is in the array or`FALSE` otherwise. class:word {n/a} {n/a} a all +a:contains? na-f - - Return `TRUE` if the value is in the array or `FALSE` otherwise. class:word {n/a} {n/a} a all +a:counted-results q-a - - Run a quote and construct a new array from the returned values. The quote should return the values and the number of values to put into the array. class:word {n/a} {n/a} a all +a:dup a-b - - Make a copy of an array. Return the address of the copy. class:word {n/a} {n/a} a all +a:eq? aa-f - - Compare all values in the array. Return `TRUE` if all values are equal or `FALSE` otherwise. This assumes the array contains only numeric values. class:word {n/a} {n/a} a all +a:filter aq-b - - For each item in the initial array, run the specified quote. If the quote returns `TRUE`, copy the item into a new array. If `FALSE`, discard it. Returns a pointer to the new array. class:word {n/a} {n/a} a all +a:for-each aq- - - Execute the quote once for each item in the array. class:word {n/a} {n/a} a all +a:from-string s-a - - Create a new array with the characters in the source string. class:word {n/a} {n/a} a all +a:length a-n - - Return the length of a array. class:word {n/a} {n/a} a all +a:make q-a - - Execute quote. Return a new array containing the values the quote leaves on the stack. This is identical to doing `a:counted-results a:reverse` class:word {n/a} {n/a} a all +a:map aq- - - Execute quote once for each item in the array. Constructs a new array from the value returned by the quote. class:word {n/a} {n/a} a all +a:nth an-b - - Return the actual address of the nth item in the array. class:word {n/a} {n/a} a all +a:reduce pnq-n - - Takes an array, a starting value, and a quote. This will apply the quote to each item in the array; the quote should consume two values and return one. class:word {n/a} {n/a} a all +a:reverse a-b - - Reverse the order of items in a array. This will return a new array. class:word {n/a} {n/a} a all again - - - Close an unconditional loop. Branches back to the prior `repeat`. class:macro {n/a} {n/a} global all allot n- - - Allocate the specified number of cells from the `Heap`. class:word 'Buffer d:create #100 allot {n/a} global all and nm-o - - Perform a bitwise AND operation between the two provided values. class:primitive {n/a} {n/a} global all -array:-eq? aa-f - - Compare all values in the array. Return `FALSE` if all values are equal or `TRUE` otherwise. This assumes the array contains only numeric values. class:word {n/a} {n/a} array all -array:contains-string? sa-f - - Return `TRUE` if the string value is in the array or`FALSE` otherwise. class:word {n/a} {n/a} array all -array:contains? na-f - - Return `TRUE` if the value is in the array or `FALSE` otherwise. class:word {n/a} {n/a} array all -array:counted-results q-a - - Run a quote and construct a new array from the returned values. The quote should return the values and the number of values to put into the array. class:word {n/a} {n/a} array all -array:dup a-b - - Make a copy of an array. Return the address of the copy. class:word {n/a} {n/a} array all -array:eq? aa-f - - Compare all values in the array. Return `TRUE` if all values are equal or `FALSE` otherwise. This assumes the array contains only numeric values. class:word {n/a} {n/a} array all -array:filter aq-b - - For each item in the initial array, run the specified quote. If the quote returns `TRUE`, copy the item into a new array. If `FALSE`, discard it. Returns a pointer to the new array. class:word {n/a} {n/a} array all -array:for-each aq- - - Execute the quote once for each item in the array. class:word {n/a} {n/a} array all -array:from-string s-a - - Create a new array with the characters in the source string. class:word {n/a} {n/a} array all -array:length a-n - - Return the length of a array. class:word {n/a} {n/a} array all -array:make q-a - - Execute quote. Return a new array containing the values the quote leaves on the stack. This is identical to doing `array:counted-results array:reverse` class:word {n/a} {n/a} array all -array:map aq- - - Execute quote once for each item in the array. Constructs a new array from the value returned by the quote. class:word {n/a} {n/a} array all -array:nth an-b - - Return the actual address of the nth item in the array. class:word {n/a} {n/a} array all -array:reduce pnq-n - - Takes an array, a starting value, and a quote. This will apply the quote to each item in the array; the quote should consume two values and return one. class:word {n/a} {n/a} array all -array:reverse a-b - - Reverse the order of items in a array. This will return a new array. class:word {n/a} {n/a} array all as{ -f - - Begin an assembly section. class:macro {n/a} {n/a} global all banner - - - Display a welcome message on startup. class:word {n/a} {n/a} global rre {n/a} bi xqq-? - - Execute q1 against x, then execute q2 against a copy of x. class:word #100 [ #10 * ] [ #10 - ] bi {n/a} global all @@ -458,7 +458,7 @@ var s- - - Create a variable. The variable is initialized to 0. class:word var ns- - - Create a variable with the specified initial value. class:word #10 'Base var\n {n/a} global all while q- - - Execute quote repeatedly while the quote returns a `TRUE` value. The quote should return a flag of either `TRUE` or `FALSE`, though `while` will treat any non-zero value as `TRUE`. class:word #10 [ dup n:put nl n:dec dup n:-zero? ] while {n/a} global all xor mn-o - - Perform a bitwise XOR operation. class:primitive {n/a} {n/a} global all -{ - - - Begin an array. This is intended to make creating arrays a bit cleaner than using a quotation and `array:counted-results`. class:word {n/a} {n/a} global all +{ - - - Begin an array. This is intended to make creating arrays a bit cleaner than using a quotation and `a:counted-results`. class:word {n/a} {n/a} global all {{ - - - Begin a lexically scoped area. class:word {n/a} {n/a} global all } -a - - Complete an array begun by `{`. Returns a pointer to the data. class:word {n/a} {n/a} global all }as f- - - End an assembly section. class:macro {n/a} {n/a} global all