diff --git a/CHANGELOG b/CHANGELOG index 676fae8..4ff5b69 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -3,6 +3,8 @@ ant4c (YYYY.MM) of inputs with huge (more than 32 KB) length. * At implementation of 'SHA3/Keccak' algorithm do not loading whole range of data while calculating hash sum of first one. + * Added 'operating-system::is-windows-server' and + 'platform::is-windows-server' functions. -- TheVice DAY, DD MM YYYY HH:MM:SS +/-.. diff --git a/CMakeLists.txt b/CMakeLists.txt index 3dc1583..5aadf7d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -165,8 +165,9 @@ if(DEFINED PROGRAM_VERSION) endif() if(NOT MSVC) - if(("GNU" STREQUAL "${CMAKE_CXX_COMPILER_ID}") AND (NOT MINGW)) + if(NOT MINGW) target_compile_options(ant4c PRIVATE "-fPIE") + target_compile_options(ant4c PRIVATE "-fPIC") target_compile_options(ant4c_app PRIVATE "-fPIE") set_target_properties(ant4c_app PROPERTIES LINK_FLAGS "-pie -Wl,-z,now") endif() @@ -219,7 +220,11 @@ list(APPEND SOURCES_OF_TESTS set(pugixml_FOUND 0) set(GTest_FOUND False) -find_package(pugixml) +if((DEFINED ENV{pugixml_issues_390}) OR (DEFINED pugixml_issues_390))# https://github.com/zeux/pugixml/issues/390 +else() + find_package(pugixml) +endif() + find_package(GTest) if((1 EQUAL ${pugixml_FOUND}) AND ${GTest_FOUND}) diff --git a/MD5SUMS b/MD5SUMS index 09cda55..f80ea70 100644 --- a/MD5SUMS +++ b/MD5SUMS @@ -20,6 +20,7 @@ c4a1d31ca9b1715d80a96a5662e5ae86 ant4c-2020.09-1.el7.x86_64.rpm 4628bc67eb8993fdd157b67e27713325 ant4c-2020.09-1.fc33.x86_64.rpm e48b65d5086d1e3ef9c4f73524254555 ant4c-2020.09-1.x86_64.rpm cd6f7389d91aaadb4d0f2219ea090024 ant4c.dns.zip +e7490634d2aec451d7600ceab14505ed ant4c.net.framework.module.2020.9.0.nupkg bf03f07cd71a15c7037d53bef0b315b8 ant4c.regex.zip 296e39f5d916d85b961ea9049ad48a5b libant4c-2020.09_freebsd.tar.bz2 935aca6f8a2bef6cafc7e1698b375948 libant4c-2020.09_openbsd.tar.bz2 diff --git a/SHA3-224SUMS b/SHA3-224SUMS index 868149c..59d4a0f 100644 --- a/SHA3-224SUMS +++ b/SHA3-224SUMS @@ -20,6 +20,7 @@ ebaf46282f2f6f186027c53879c581c42cc93f476d2e1ac4648a1c7a ant4c-2020.09-1.el8.x8 12b2156cafe01cde2006a76bc652c154c9f699acad911ef217c96c67 ant4c-2020.09-1.fc33.x86_64.rpm e526c3a1d9577ae0311e6d74858514bf9c5b77c8cb958d06396df64e ant4c-2020.09-1.x86_64.rpm f688c4c3c0a7c98ecd1f49e3b9e8f52f7a92898719a28f0294c57795 ant4c.dns.zip +091f58f5debc7285281233a97b3a89cd95c4882559b51e3b8ef1693c ant4c.net.framework.module.2020.9.0.nupkg aa1b0f029777a00f07223ffc96735324604ad17189d7c766657fa73d ant4c.regex.zip d29d3fdb154efb2bba41a1fc1814b84109514520bb91503d179c2e9c libant4c-2020.09_freebsd.tar.bz2 c5c9e9edaee0726f1e9155a9401f42fbf5178d599e18dcaaca52b322 libant4c-2020.09_openbsd.tar.bz2 diff --git a/CustomAppDomainManager.cs b/ant4c.net.framework.module.CustomAppDomainManager.cs similarity index 100% rename from CustomAppDomainManager.cs rename to ant4c.net.framework.module.CustomAppDomainManager.cs diff --git a/IFrameworkNamespace.cs b/ant4c.net.framework.module.IFrameworkNamespace.cs similarity index 100% rename from IFrameworkNamespace.cs rename to ant4c.net.framework.module.IFrameworkNamespace.cs diff --git a/VersionDetector.cs b/ant4c.net.framework.module.VersionDetector.cs similarity index 100% rename from VersionDetector.cs rename to ant4c.net.framework.module.VersionDetector.cs diff --git a/ant4c.net.framework.module.c b/ant4c.net.framework.module.c index 2d6eb38..e55c3f0 100644 --- a/ant4c.net.framework.module.c +++ b/ant4c.net.framework.module.c @@ -445,7 +445,7 @@ uint8_t evaluate_function(const uint8_t* function, case metahost_runtime_: if (1 != values_count || - !metahost_runtime(values[0], values_lengths[0], &values_count) || + !metahost_runtime(values[0], (uint8_t)values_lengths[0], &values_count) || !bool_to_string(values_count, &output_data)) { return 0; diff --git a/ant4c.net.framework.module.cmake b/ant4c.net.framework.module.cmake index 86c5cd9..60d6b80 100644 --- a/ant4c.net.framework.module.cmake +++ b/ant4c.net.framework.module.cmake @@ -19,9 +19,9 @@ if(MSVC) add_library(ant4c.net.framework.module.clr "${CMAKE_SOURCE_DIR}/ant4c.net.framework.module.AssemblyInfo.cs" - "${CMAKE_SOURCE_DIR}/CustomAppDomainManager.cs" - "${CMAKE_SOURCE_DIR}/IFrameworkNamespace.cs" - "${CMAKE_SOURCE_DIR}/VersionDetector.cs") + "${CMAKE_SOURCE_DIR}/ant4c.net.framework.module.CustomAppDomainManager.cs" + "${CMAKE_SOURCE_DIR}/ant4c.net.framework.module.IFrameworkNamespace.cs" + "${CMAKE_SOURCE_DIR}/ant4c.net.framework.module.VersionDetector.cs") add_library(ant4c.net.framework.module SHARED "${CMAKE_SOURCE_DIR}/ant4c.net.framework.module.c" diff --git a/environment.c b/environment.c index 39ec5cb..bc01137 100644 --- a/environment.c +++ b/environment.c @@ -1,7 +1,7 @@ /* * The MIT License (MIT) * - * Copyright (c) 2019 - 2020 https://github.com/TheVice/ + * Copyright (c) 2019 - 2021 https://github.com/TheVice/ * */ @@ -12,6 +12,7 @@ #include "operating_system.h" #include "range.h" #include "text_encoding.h" +#include "version.h" #include @@ -19,7 +20,6 @@ #define __STDC_SEC_API__ ((__STDC_LIB_EXT1__) || (__STDC_SECURE_LIB__) || (__STDC_WANT_LIB_EXT1__) || (__STDC_WANT_SECURE_LIB__)) #endif -static struct OperatingSystem operating_system; static uint8_t is_data_of_operating_system_filled = 0; #define ENVIRONMENT_UNKNOWN_SPECIAL_FOLDER (CDBurning + 1) @@ -528,7 +528,6 @@ uint8_t environment_get_folder_path(enum SpecialFolder folder, struct buffer* pa #endif #include -#include #include uint8_t environment_get_folder_path(enum SpecialFolder folder, struct buffer* path) @@ -721,10 +720,7 @@ struct Version GetWindowsVersion() ver.major = 6; } - /* - IsWindowsXPOrGreater(); - IsWindowsServer(); - */ + /*IsWindowsXPOrGreater();*/ #else /*TODO: call VerSetConditionMask, VerifyVersionInfoW via pointers.*/ static const struct Version versions[] = { {10, 0, 0, 0}, {6, 3, 0, 0}, {6, 2, 0, 0}, {6, 1, 0, 0}, {6, 0, 0, 0} }; @@ -750,41 +746,47 @@ struct Version GetWindowsVersion() return ver; } -const struct OperatingSystem* environment_get_operating_system() +static uint8_t operating_system[UINT8_MAX]; +#if defined(_MSC_VER) && (_MSC_VER >= 1800) +#else +uint8_t IsWindowsServer() +{ + OSVERSIONINFOEXW osvi; + memset(&osvi, 0, sizeof(OSVERSIONINFOEXW)); + osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEXW); + osvi.wProductType = VER_NT_WORKSTATION; + DWORDLONG const dwlConditionMask = VerSetConditionMask(0, VER_PRODUCT_TYPE, VER_EQUAL); + /**/ + return !VerifyVersionInfoW(&osvi, VER_PRODUCT_TYPE, dwlConditionMask); +} +#endif +const void* environment_get_operating_system() { if (!is_data_of_operating_system_filled) { - operating_system.Platform = Win32; - operating_system.Version = GetWindowsVersion(); -#if __STDC_SEC_API__ - is_data_of_operating_system_filled = (0 == memcpy_s(operating_system.VersionString, INT8_MAX, Win32NT_str, - Win32NT_str_length)); - - if (is_data_of_operating_system_filled) -#else - memcpy(operating_system.VersionString, Win32NT_str, Win32NT_str_length); + struct Version ver = GetWindowsVersion(); + is_data_of_operating_system_filled = operating_system_init( + Win32, 0 < IsWindowsServer(), &ver, (ptrdiff_t)sizeof(operating_system), operating_system); - is_data_of_operating_system_filled = 1; -#endif + if (!is_data_of_operating_system_filled) { - uint8_t* str_version = operating_system.VersionString + Win32NT_str_length; - *str_version = ' '; - ++str_version; - is_data_of_operating_system_filled = 0 < version_to_byte_array(&operating_system.Version, str_version); + return NULL; } } - return &operating_system; + return operating_system; } #else -const struct OperatingSystem* environment_get_operating_system() +static uint8_t operating_system[sizeof(struct utsname) + INT8_MAX]; + +const void* environment_get_operating_system() { if (!is_data_of_operating_system_filled) { + struct Version ver; struct utsname uname_data; - operating_system.Platform = Unix; if (-1 == uname(&uname_data)) { @@ -793,18 +795,27 @@ const struct OperatingSystem* environment_get_operating_system() if (!version_parse((const uint8_t*)uname_data.version, (const uint8_t*)uname_data.version + strlen(uname_data.version), - &operating_system.Version)) + &ver)) { return NULL; } - sprintf((char* const)operating_system.VersionString, "%s %s %s %s", - uname_data.sysname, uname_data.release, - uname_data.version, uname_data.machine); - is_data_of_operating_system_filled = 1; + const uint8_t* version_string[] = + { + (const uint8_t*)uname_data.sysname, (const uint8_t*)uname_data.release, + (const uint8_t*)uname_data.version, (const uint8_t*)uname_data.machine + }; + /**/ + is_data_of_operating_system_filled = operating_system_init( + Unix, &ver, version_string, (ptrdiff_t)sizeof(operating_system), operating_system); + + if (!is_data_of_operating_system_filled) + { + return NULL; + } } - return &operating_system; + return operating_system; } #endif @@ -1072,10 +1083,10 @@ uint8_t environment_is64bit_operating_system() #else static const uint8_t* x86_64 = (const uint8_t*)"x86_64"; static const uint8_t* amd64 = (const uint8_t*)"amd64"; - const struct OperatingSystem* os = environment_get_operating_system(); - return string_contains(os->VersionString, os->VersionString + common_count_bytes_until(os->VersionString, 0), + const uint8_t* version_string = operating_system_to_string(environment_get_operating_system()); + return string_contains(version_string, version_string + common_count_bytes_until(version_string, 0), x86_64, x86_64 + 6) || - string_contains(os->VersionString, os->VersionString + common_count_bytes_until(os->VersionString, 0), + string_contains(version_string, version_string + common_count_bytes_until(version_string, 0), amd64, amd64 + 5); #endif } @@ -1221,10 +1232,8 @@ uint8_t environment_exec_function(uint8_t function, const struct buffer* argumen return !arguments_count && environment_get_machine_name(output); case get_operating_system: - { - const struct OperatingSystem* os = environment_get_operating_system(); - return !arguments_count && common_append_string_to_buffer(os->VersionString, output); - } + return !arguments_count && + common_append_string_to_buffer(operating_system_to_string(environment_get_operating_system()), output); case get_user_name: return !arguments_count && environment_get_user_name(output); diff --git a/environment.h b/environment.h index cc78d3f..3197da1 100644 --- a/environment.h +++ b/environment.h @@ -1,7 +1,7 @@ /* * The MIT License (MIT) * - * Copyright (c) 2019 - 2020 https://github.com/TheVice/ + * Copyright (c) 2019 - 2021 https://github.com/TheVice/ * */ @@ -12,7 +12,6 @@ #include struct buffer; -struct OperatingSystem; static const uint8_t environment_posix_delimiter = ':'; static const uint8_t environment_windows_delimiter = ';'; @@ -76,7 +75,7 @@ enum SpecialFolder uint8_t environment_get_folder_path(enum SpecialFolder folder, struct buffer* path); uint8_t environment_get_machine_name(struct buffer* name); -const struct OperatingSystem* environment_get_operating_system(); +const void* environment_get_operating_system(); uint8_t environment_get_user_name(struct buffer* name); uint8_t environment_get_variable(const uint8_t* variable_name_start, const uint8_t* variable_name_finish, struct buffer* variable); diff --git a/help.adoc b/help.adoc index d95a707..f4f3134 100644 --- a/help.adoc +++ b/help.adoc @@ -2720,9 +2720,11 @@ Get integer part from double digital value. | <> | Get platform of the operation system. | <> | Get version of the operation system. | <> | Get string representation of the the operation system. +| <> | Check is specified operation system Windows Server. | <> | Get name of current platform. | <> | Check is current platform UNIX like. | <> | Check is current platform Windows. +| <> | Check is current platform Windows Server. |=== [[operating_system-get_platform]] @@ -2753,6 +2755,13 @@ Get version of operating system. Get string representation of operating system. +[[operating_system-is_windows_server]] +==== is-windows-server + +*bool* 'operating-system::is-windows-server'(*operating system*) + +Return *true* if specified operation system from Windows Server family. + [[platform-get_name]] ==== get-name @@ -2774,6 +2783,13 @@ Return *true* if current platform UNIX like. Return *true* if current platform from Windows family. +[[platform-is_windows_server]] +==== is-windows-server + +*bool* 'platform::is-windows-server'() + +Return *true* if current platform from Windows Server family. + === Path unit .Functions from path unit. diff --git a/operating_system.c b/operating_system.c index 506e373..925528f 100644 --- a/operating_system.c +++ b/operating_system.c @@ -1,7 +1,7 @@ /* * The MIT License (MIT) * - * Copyright (c) 2019 - 2020 https://github.com/TheVice/ + * Copyright (c) 2019 - 2021 https://github.com/TheVice/ * */ @@ -12,86 +12,246 @@ #include "environment.h" #include "range.h" #include "string_unit.h" +#include "version.h" -uint8_t operating_system_parse(const uint8_t* start, const uint8_t* finish, struct OperatingSystem* os) +#include + +#if !defined(_WIN32) +#include + +#define _POSIXSOURCE 1 +#include +#endif + +#if !defined(__STDC_SEC_API__) +#define __STDC_SEC_API__ ((__STDC_LIB_EXT1__) || (__STDC_SECURE_LIB__) || (__STDC_WANT_LIB_EXT1__) || (__STDC_WANT_SECURE_LIB__)) +#endif + +struct OperatingSystem { - if (range_in_parts_is_null_or_empty(start, finish) || - NULL == os || - COUNT_OF(os->VersionString) < (size_t)(finish - start)) + enum PlatformID Platform; + struct Version Version; + uint8_t IsServer; +#if defined(_WIN32) + uint8_t VersionString[INT8_MAX + 1]; +#else + uint8_t VersionString[sizeof(struct utsname) + 4]; +#endif +}; + +static const uint8_t* windows_label = (const uint8_t*)"Microsoft Windows NT"; +static const uint8_t* server_label = (const uint8_t*)"Server"; +#define Win32NT_str_length 20 +#define Server_str_length 6 + +#if !defined(_WIN32) +uint8_t operating_system_init(uint8_t platformID, const struct Version* version, + const uint8_t** version_string, ptrdiff_t size, void* os) +#else +uint8_t operating_system_init(uint8_t platformID, uint8_t is_server, + const struct Version* version, ptrdiff_t size, void* os) +#endif +{ + if (size < (ptrdiff_t)sizeof(struct OperatingSystem) || + NULL == os) { return 0; } - static const uint8_t* windows_label = (const uint8_t*)(Win32NT_str); + memset(os, 0, size); + struct OperatingSystem* operating_system = (struct OperatingSystem*)os; + operating_system->Platform = platformID; +#if defined(_WIN32) + operating_system->IsServer = is_server; +#endif + + if (version) + { +#if __STDC_SEC_API__ + + if (0 != memcpy_s(&operating_system->Version, sizeof(struct Version), version, sizeof(struct Version))) + { + return 0; + } + + if (Win32 == platformID && + 0 != memcpy_s(operating_system->VersionString, + INT8_MAX, windows_label, Win32NT_str_length)) + { + return 0; + } + +#else + memcpy(&operating_system->Version, version, sizeof(struct Version)); + + if (Win32 == platformID) + { + memcpy(operating_system->VersionString, windows_label, Win32NT_str_length); + } + +#endif + uint8_t* str_version = operating_system->VersionString; + + if (Win32 == platformID) + { + str_version += Win32NT_str_length; + *str_version = ' '; + ++str_version; +#if defined(_WIN32) + + if (is_server) + { +#if __STDC_SEC_API__ + + if (0 != memcpy_s(str_version, INT8_MAX - Win32NT_str_length, server_label, Server_str_length)) + { + return 0; + } + +#else + memcpy(str_version, INT8_MAX - Win32NT_str_length, server_label, Server_str_length); +#endif + str_version += Server_str_length; + *str_version = ' '; + ++str_version; + } + +#endif + + if (!version_to_byte_array(version, str_version)) + { + return 0; + } + } + +#if !defined(_WIN32) + else + { +#if __STDC_SEC_API__ + size = sprintf_s( + (char* const)str_version, sizeof(operating_system->VersionString), + "%s %s %s %s", + version_string[0], version_string[1], + version_string[2], version_string[3]); +#else + size = sprintf( + (char* const)str_version, "%s %s %s %s", + version_string[0], version_string[1], + version_string[2], version_string[3]); +#endif + + if (size < 1) + { + return 0; + } + } + +#endif + } + + return 1; +} + +uint8_t operating_system_parse(const uint8_t* start, const uint8_t* finish, ptrdiff_t size, void* os) +{ + if (size < (ptrdiff_t)sizeof(struct OperatingSystem) || + NULL == os) + { + return 0; + } + + memset(os, 0, size); + + if (range_in_parts_is_null_or_empty(start, finish)) + { + return 1; + } + + struct OperatingSystem* operating_system = (struct OperatingSystem*)os; if (string_starts_with(start, finish, windows_label, windows_label + Win32NT_str_length)) { - os->Platform = Win32; + operating_system->Platform = Win32; + operating_system->IsServer = string_contains( + start + Win32NT_str_length, finish, server_label, + server_label + Server_str_length); } else { - os->Platform = Unix; + operating_system->Platform = Unix; } /*TODO: os->Platform = MacOSX;*/ - if (!version_parse(start, finish, &os->Version)) + if (!version_parse(start, finish, &operating_system->Version)) { return 0; } - /*TODO: memcpy*/ - for (uint16_t i = 0, count = COUNT_OF(os->VersionString); i < count; ++i) +#if __STDC_SEC_API__ + + if (0 != memcpy_s(&operating_system->VersionString, sizeof(operating_system->VersionString), start, + MIN((ptrdiff_t)sizeof(operating_system->VersionString), finish - start))) { - if (start + i < finish) - { - os->VersionString[i] = *(start + i); - } - else - { - os->VersionString[i] = '\0'; - break; - } + return 0; } +#else + memcpy(&operating_system->VersionString, start, + MIN((ptrdiff_t)sizeof(operating_system->VersionString), finish - start)); +#endif return 1; } -enum PlatformID operating_system_get_platform(const struct OperatingSystem* os) +enum PlatformID operating_system_get_platform(const void* os) { if (NULL == os) { return UINT8_MAX; } - return os->Platform; + const struct OperatingSystem* operating_system = (const struct OperatingSystem*)os; + return operating_system->Platform; } -struct Version operating_system_get_version(const struct OperatingSystem* os) +const struct Version* operating_system_get_version(const void* os) { if (NULL == os) { static struct Version ver; ver.major = ver.minor = ver.build = ver.revision = 0; - return ver; + return &ver; } - return os->Version; + const struct OperatingSystem* operating_system = (const struct OperatingSystem*)os; + return &operating_system->Version; } -const uint8_t* operating_system_to_string(const struct OperatingSystem* os) +const uint8_t* operating_system_to_string(const void* os) { if (NULL == os) { return NULL; } - return os->VersionString; + const struct OperatingSystem* operating_system = (const struct OperatingSystem*)os; + return operating_system->VersionString; +} + +uint8_t operating_system_is_windows_server(const void* os) +{ + if (NULL == os) + { + return 0; + } + + const struct OperatingSystem* operating_system = (const struct OperatingSystem*)os; + return operating_system->IsServer; } const uint8_t* platform_get_name() { - const struct OperatingSystem* os = environment_get_operating_system(); + const struct OperatingSystem* os = (const struct OperatingSystem*)environment_get_operating_system(); if (NULL == os) { @@ -111,6 +271,22 @@ uint8_t platform_is_windows() return Win32 == operating_system_get_platform(environment_get_operating_system()); } +uint8_t platform_is_windows_server() +{ +#if defined(_WIN32) + const struct OperatingSystem* os = (const struct OperatingSystem*)environment_get_operating_system(); + + if (NULL == os) + { + return 0; + } + + return os->IsServer; +#else + return 0; +#endif +} + static const uint8_t* os_function_str[] = { (const uint8_t*)"get-platform", @@ -118,12 +294,14 @@ static const uint8_t* os_function_str[] = (const uint8_t*)"to-string", (const uint8_t*)"get-name", (const uint8_t*)"is-unix", - (const uint8_t*)"is-windows" + (const uint8_t*)"is-windows", + (const uint8_t*)"is-windows-server" }; enum os_function { - get_platform, get_version, to_string, get_name, is_unix, is_windows, + get_platform, get_version, to_string, + get_name, is_unix, is_windows, is_windows_server, UNKNOWN_OS_FUNCTION }; @@ -135,7 +313,7 @@ uint8_t os_get_function(const uint8_t* name_start, const uint8_t* name_finish) uint8_t os_exec_function(uint8_t function, const struct buffer* arguments, uint8_t arguments_count, struct buffer* output) { - if (UNKNOWN_OS_FUNCTION <= function || NULL == arguments || 1 < arguments_count || NULL == output) + if (UNKNOWN_OS_FUNCTION <= function || NULL == arguments || 1 != arguments_count || NULL == output) { return 0; } @@ -144,9 +322,8 @@ uint8_t os_exec_function(uint8_t function, const struct buffer* arguments, uint8 struct OperatingSystem os; - if (arguments_count && - (!common_get_arguments(arguments, arguments_count, &argument, 0) || - !operating_system_parse(argument.start, argument.finish, &os))) + if (!common_get_arguments(arguments, arguments_count, &argument, 0) || + !operating_system_parse(argument.start, argument.finish, sizeof(struct OperatingSystem), &os)) { return 0; } @@ -171,14 +348,14 @@ uint8_t os_exec_function(uint8_t function, const struct buffer* arguments, uint8 break; case get_version: - { - const struct Version ver = operating_system_get_version(&os); - return version_to_string(&ver, output); - } + return version_to_string(operating_system_get_version(&os), output); case to_string: return common_append_string_to_buffer(operating_system_to_string(&os), output); + case is_windows_server: + return bool_to_string(operating_system_is_windows_server(&os), output); + case UNKNOWN_OS_FUNCTION: default: break; @@ -205,7 +382,9 @@ uint8_t platform_exec_function(uint8_t function, const struct buffer* arguments, case is_windows: return bool_to_string(platform_is_windows(), output); - break; + + case is_windows_server: + return bool_to_string(platform_is_windows_server(), output); case UNKNOWN_OS_FUNCTION: default: diff --git a/operating_system.h b/operating_system.h index f727ca6..8fdef7f 100644 --- a/operating_system.h +++ b/operating_system.h @@ -1,22 +1,16 @@ /* * The MIT License (MIT) * - * Copyright (c) 2019 - 2020 https://github.com/TheVice/ + * Copyright (c) 2019 - 2021 https://github.com/TheVice/ * */ #ifndef _OPERATING_SYSTEM_H_ #define _OPERATING_SYSTEM_H_ -#include "version.h" - +#include #include -#if !defined(_WIN32) -#define _POSIXSOURCE 1 -#include -#endif - enum PlatformID { Win32, @@ -24,30 +18,27 @@ enum PlatformID MacOSX*/ }; -struct OperatingSystem -{ - enum PlatformID Platform; - struct Version Version; -#if defined(_WIN32) - uint8_t VersionString[INT8_MAX + 1]; -#else - uint8_t VersionString[sizeof(struct utsname) + 4]; -#endif -}; - struct buffer; +struct Version; -#define Win32NT_str "Microsoft Windows NT" -#define Win32NT_str_length 20 +#if !defined(_WIN32) +uint8_t operating_system_init(uint8_t platformID, const struct Version* version, + const uint8_t** version_string, ptrdiff_t size, void* os); +#else +uint8_t operating_system_init(uint8_t platformID, uint8_t is_server, + const struct Version* version, ptrdiff_t size, void* os); +#endif -uint8_t operating_system_parse(const uint8_t* start, const uint8_t* finish, struct OperatingSystem* os); -enum PlatformID operating_system_get_platform(const struct OperatingSystem* os); -struct Version operating_system_get_version(const struct OperatingSystem* os); -const uint8_t* operating_system_to_string(const struct OperatingSystem* os); +uint8_t operating_system_parse(const uint8_t* start, const uint8_t* finish, ptrdiff_t size, void* os); +enum PlatformID operating_system_get_platform(const void* os); +const struct Version* operating_system_get_version(const void* os); +const uint8_t* operating_system_to_string(const void* os); +uint8_t operating_system_is_windows_server(const void* os); const uint8_t* platform_get_name(); uint8_t platform_is_unix(); uint8_t platform_is_windows(); +uint8_t platform_is_windows_server(); uint8_t os_get_function(const uint8_t* name_start, const uint8_t* name_finish); uint8_t os_exec_function(uint8_t function, const struct buffer* arguments, uint8_t arguments_count, diff --git a/tests.xml b/tests.xml index a1dde35..1112096 100644 --- a/tests.xml +++ b/tests.xml @@ -1,9873 +1,9913 @@ - - - - - - 1 - - - - - - - - - - - - - - - - - -indent: - - - -indent:1 - 1 - 1 - - - -indent:-1 - 1 - 1 - - - -indent:21 - 1 - 21 - - - -buildfile:sample.build - 1 - sample.build - - - /f:sample.build - 1 - sample.build - - - -buildfile:sample_1.build /f:sample_2.build - 1 - sample_1.build - sample_2.build - - - -buildfile:/tmp/a/b/c/sample.build - 1 - /tmp/a/b/c/sample.build - - - -buildfile:/tmp/a/b/c/sample_1.build /f:sample_2.build - 1 - /tmp/a/b/c/sample_1.build - sample_2.build - - - -logfile: - - - -l: - - - -logfile:program_log.txt - 1 - program_log.txt - - - -l:program_log.txt - 1 - program_log.txt - - - -logfile:program_log_1.txt -l:program_log_2.txt - 1 - program_log_2.txt - - - -pause - 1 - 1 - - - -verbose - 1 - 1 - - - -v - 1 - 1 - - - -debug - 1 - 1 - - - -quiet - 1 - 1 - - - -q - 1 - 1 - - - -D: - - - -D:property_name=property_value - 1 - - - - - - -D:property_name_1=property_value_1 -D:property_name_2=property_value_2 - 1 - - - - - - - -projecthelp - 1 - 1 - - - -nologo - 1 - 1 - - - -help - 1 - 1 - - - -h - 1 - 1 - - - a - a - 1 - - - foo -logfile:C:\1.txt -buildfile:1.build bar - foo - C:\1.txt - 1.build - bar - 1 - - - -encoding:Unicode - Unicode - 1 - - - -encoding:ENC - UNKNOWN - 1 - - - -listener:default_listener - default_listener - 1 - - - -modulepriority - 1 - 1 - - - -modulepriority+ - 1 - 1 - - - -modulepriority- - 0 - 1 - - - 1 - 0 - 1 - 1 - - - -v+ - 1 - 1 - - - -v- - 0 - 1 - - - -v1 - 0 - 1 - - - -verbose+ - 1 - 1 - - - -verbose- - 0 - 1 - - - -verbose1 - 0 - 1 - - - /f:1.build - 1.build - 1 - - - -buildfile:1.build - 1.build - 1 - - - -l: - 0 - - - -l:1.txt - 1.txt - 1 - - - -logfile: - - 0 - - - -logfile:1.txt - 1.txt - 1 - - - -logfile:"C:\Program Files\1.txt" - C:\Program Files\1.txt - 1 - - - -l:"C:\Program Files\1.txt" - C:\Program Files\1.txt - 1 - - - -listener: - 0 - - - -listener:libdefault_listener.so - libdefault_listener.so - 1 - - - -listener:default_listener.dll - default_listener.dll - 1 - - - - - - - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 0 - 10x020x030x040x050x060x070x080x090x000x0 - 1 - - - "a b c" - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 0 - a b c0x020x030x040x050x060x070x080x090x000x0 - 1 - - - /f:C:\discriminant.build /f:"C:\first one.build" /f:"C:\Folder checker.build" /f:C:\sample.build - /f:C:\discriminant.build0x0/f:C:\first one.build0x0/f:C:\Folder checker.build0x0/f:C:\sample.build0x0 - 1 - - - /f:C:\discriminant.build - /f:"C:\first one.build" - /f:"C:\Folder checker.build" - /f:C:\sample.build - /f:C:\discriminant.build0x0/f:C:\first one.build0x0/f:C:\Folder checker.build0x0/f:C:\sample.build0x0 - 1 - - - "a b c" "d e f" "g h" 4 5 - a b c0x0d e f0x0g h0x040x050x0 - 1 - - - - - - - 0 - - - True - 1 - 1 - - - False - 0 - 1 - - - true - 1 - 1 - - - false - - 1 - - - - False - 1 - - - 0 - False - 1 - - - 1 - True - 1 - - - 2 - - 0 - - - - - 2019 - 09 - 01 - 02 - 03 - 04 - 1 - %A %c - Sunday Sun Sep 1 02:03:04 2019 - Sunday 09/01/19 02:03:04 - - - - - - - - - - - - - 01.09.2019 2:03:04 - 1 - 2019 - 09 - 01 - 02 - 03 - 04 - - - 2019 - 09 - 01 - 02 - 03 - 04 - 01.09.2019 2:03:04 - - - 1 - - - 15 - - - 31 - - - 1970 - 1 - 1 - 4 - - - 2015 - 12 - 23 - 3 - - - 2016 - 12 - 23 - 5 - - - 2017 - 12 - 23 - 6 - - - 2018 - 12 - 23 - 0 - - - 2019 - 12 - 23 - 1 - - - - - - - - 2019 - 09 - 30 - - - 2019 - 02 - 28 - - - 2016 - 02 - 29 - - - 0 - - - 21 - - - 23 - - - 1 - - - 30 - - - 59 - - - 1 - - - 6 - - - 12 - - - 0 - - - 30 - - - 59 - - - 1970 - - - 2000 - - - 2019 - - - 1700 - 0 - - - 1800 - 0 - - - 1900 - 0 - - - 1600 - 1 - - - 2000 - 1 - - - 2016 - 1 - - - 2019 - 0 - - - 2020 - 1 - - - 1569840495 - 1 - 2019 - 09 - 30 - 10 - 48 - 15 - 273 - - - - - PATH - 4 - 1 - - - PATH!@# - 7 - 0 - - - - - - - - - - - - - - - 1 - - - 1 - - - command_line> - 1 2 3 4 5 - 1 - - - working_dir> - C:\ - 1 - - - working_dir> - /home/ - 1 - - - environment_variables> - var1=value1 - 1 - - - command_line environment_variables> - 1 2 3 4 5 - var1=value1 - 1 - - - working_dir environment_variables> - C:\ - var1=value1 - 1 - - - working_dir environment_variables> - /home/ - var1=value1 - 1 - - - command_line working_dir> - 1 2 3 4 5 - C:\ - 1 - - - command_line working_dir> - 1 2 3 4 5 - /home/ - 1 - - - command_line working_dir environment_variables> - 1 2 3 4 5 - C:\ - var1=value1 - 1 - - - command_line working_dir environment_variables> - 1 2 3 4 5 - /home/ - var1=value1 - 1 - - - var1=value1 var2=value2 - 1 - - - "var 1"="value 1" - 1 - - - "var 1"="value 1" "var 2"="value 2" - 1 - - - 1 - - - 1 2 3 4 5 - 1 - - - "a b c" "d e f" "g h" 4 5 - 1 - - - property_for_process_identification - 1 - - - property_for_process_result - 1 - - - 5000 - 1 - - - - - - - - - my_program - - my_program - 1 - - - C:\my_program - - \\?\C:\my_program - 1 - - - my_program - C:\ - \\?\C:\my_program - 1 - - - C:\my_program - A:\ - \\?\C:\my_program - 1 - - - /tmp/my_program - - /tmp/my_program - 1 - - - my_program - /tmp/ - /tmp/my_program - 1 - - - /tmp/my_program - /usr/ - /tmp/my_program - 1 - - - - - - - - - - ]]> - - - - - - - - - - - - - - - - - ]]> - - entry - - - - entry - - - entry - - - - entry - - - - - Create root folder - - - - Create sub folder - - - - Create folder in the sub folder of root directory - - - - Save in property input for function to test - - - ]]> - - entry - - - - entry - - - entry - entry_ - - - - entry - entry_ - - - - - - - - C:\Windows - 1 - - - C:\Windows! - 0 - - - C:\Windows\regedit.exe - 0 - - - /home - 1 - - - /home! - 0 - - - /bin/ls - 0 - - - - - - - C:\Windows - 0 - - - C:\Windows! - 0 - - - C:\Windows\regedit.exe - 1 - - - C:\Windows\regedit.exe1 - 0 - - - /home - 0 - - - /home! - 0 - - - /bin/ls - 1 - - - /bin/ls1 - 0 - - - - - - - a - 1 - - - - 3 - - - - 3 - - - - - - 1 - 3345524abf6bbe1809449224b5972c41790b6cf2 - 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8 - b32811423377f52d7862286ee1a72ee540524380fda1724a6f25d7978c6fd3244a6caf0498812673c5e05ef583825100 - 786a02f742015903c6c6fd852552d272912f4740e15847618a86e217f71f5419d25e1031afee585313896444934eb04b903a685b1448b755d56f701afe9be2ce - - - The quick brown fox jumps over the lazy dog - 1 - 3c523ed102ab45a37d54f5610d5a983162fde84f - 01718cec35cd3d796dd00020e0bfecb473ad23457d063b75eff29c0ffa2e58a9 - b7c81b228b6bd912930e8f0b5387989691c1cee1e65aade4da3b86a3c9f678fc8018f6ed9e2906720c8d2a3aeda9c03d - a8add4bdddfd93e4877d2746e62817b116364a1fa7bc148d95090bc7333b3673f82401cf7aa2e4cb1ecd90296e3f14cb5413f8ed77be73045b13914cdcd6a918 - - - BLAKE and BLAKE2 are hash functions based on the ChaCha stream cipher, and was one of the finalists in the NIST competition for SHA-3 - 1 - 5e92b21f7cb0b46d06416c314f41c474e2feaf30 - 40a9706556c5b70ef10daae4c519c4fcfdee519b3ded9bc6801730b23f2c1d40 - 1441c65e58b2e9656200df99c9bd1e188a3a4e18e80d0ed9f69d4ce67bde16ef8f726e54800554dda7b29f485e50d0e9 - f22f00d4570b502efe801674f6588ad6926b54ef3503d266224b65c257d1422683bfd4a12470ba3d5cb3c73d5016a5a6f1fb96a13b7f0a84d03777bb18e6e859 - - - 0 - 1 - af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262e00f03e7b69af26b7faaf09fcd333050338ddfe085b8cc869ca98b206c08243a26f - 5487789e8f660afe6c99ef9e0c52b92e7393024a80459cf91f476f9ffdbda7001c22e159b402631f277ca96f2defdf1078282314e763699a31c5363165421cce14d - - - 1 - 1 - 2d3adedff11b61f14c886e35afa036736dcd87a74d27b5c1510225d0f592e213c3a6cb8bf623e20cdb535f8d1a5ffb86342d9c0b64aca3bce1d31f60adfa137b358 - ad4d79f97b47c3d5e79f179df87a3b9776ef8325f8329886ba42f07fb138bb502f4081cbcec3195c5871e6c23e2cc97d3c69a613eba131e5f1351f3f1da786545e5 - - - 1023 - 1 - 10108970eeda3eb932baac1428c7a2163b0e924c9a9e25b35bba72b28f70bd11a182d27a591b05592b15607500e1e8dd56bc6c7fc063715b7a1d737df5bad3339c5 - 6778957d870eb9717b57ea3d9fb68d1b55127bba6a906a4a24bbd5acb2d123a37b28f9e9a81bbaae360d58f85e5fc9d75f7c370a0cc09b6522d9c8d822f2f28f485 - - - 1024 - 1 - 42214739f095a406f3fc83deb889744ac00df831c10daa55189b5d121c855af71cf8107265ecdaf8505b95d8fcec83a98a6a96ea5109d2c179c47a387ffbb404756 - f6eeae7883b446b70ebb144527c2075ab8ab204c0086bb22b7c93d465efc57f8d917f0b385c6df265e77003b85102967486ed57db5c5ca170ba441427ed9afa684e - - - 1025 - 1 - d00278ae47eb27b34faecf67b4fe263f82d5412916c1ffd97c8cb7fb814b8444f4c4a22b4b399155358a994e52bf255de60035742ec71bd08ac275a1b51cc6bfe33 - 2b0ef84b409108cda080e6269ed4b3e2c3f7d722aa4cdc98d16deb554e5627be8f955c98e1d5f9565a9194cad0c4285f93700062d9595adb992ae68ff12800ab67a - - - 2048 - 1 - e776b6028c7cd22a4d0ba182a8bf62205d2ef576467e838ed6f2529b85fba24a9a60bf80001410ec9eea6698cd537939fad4749edd484cb541aced55cd9bf54764d - 063f23f6f1e32e12958ba5cfeb1bf618ad094266d4fc3c968c2088f677454c288c67ba0dba337b9d91c7e1ba586dc9a5bc2d5e90c14f53a8863ac75655461cea8f9 - - - 2049 - 1 - 5f4d72f40d7a5f82b15ca2b2e44b1de3c2ef86c426c95c1af0b687952256303096de31d71d74103403822a2e0bc1eb193e7aecc9643a76b7bbc0c9f9c52e8783aae - 98764ca468962b5c2ec92f0c74eb5448d519713e09413719431c802f948dd5d90425a4ecdadece9eb178d80f26efccae630734dff63340285adec2aed3b51073ad3 - - - 3072 - 1 - b98cb0ff3623be03326b373de6b9095218513e64f1ee2edd2525c7ad1e5cffd29a3f6b0b978d6608335c09dc94ccf682f9951cdfc501bfe47b9c9189a6fc7b404d1 - 20258506341a6d802857322fbd20d3e5dae05b95c88793fa83db1cb08e7d8008d1599b6209d78336e24839724c191b2a52a80448306e0daa84a3fdb566661a37e11 - - - 3073 - 1 - 7124b49501012f81cc7f11ca069ec9226cecb8a2c850cfe644e327d22d3e1cd39a27ae3b79d68d89da9bf25bc27139ae65a324918a5f9b7828181e52cf373c84f35 - b639b7fccbb985b6f2fa56aea0c18f531203497b8bbd3a07ceb5926f1cab74d14bd66486d9a91eba99059a98bd1cd25876b2af5a76c3e9eed554ed72ea952b603bf - - - 4096 - 1 - 015094013f57a5277b59d8475c0501042c0b642e531b0a1c8f58d2163229e9690289e9409ddb1b99768eafe1623da896faf7e1114bebeadc1be30829b6f8af707d8 - 5c298f4f0ff4d9438aef948335612ae921e76d411c3a9111df62d27eaf871959ae0062b5492a0feb98ef3ed4af277f5395172dbe5c311918ea0074ce0036454f620 - - - 4097 - 1 - 9b4052b38f1c5fc8b1f9ff7ac7b27cd242487b3d890d15c96a1c25b8aa0fb99505f91b0b5600a11251652eacfa9497b31cd3c409ce2e45cfe6c0a016967316c426b - d26f619eab5d70af9a418b845c608840390f361630bd497b1ab44019316357c61dbe091ce72fc16dc340ac3d6e009e050b3adac4b5b2c92e722cffdc46501531956 - - - 5120 - 1 - 9cadc15fed8b5d854562b26a9536d9707cadeda9b143978f319ab34230535833acc61c8fdc114a2010ce8038c853e121e1544985133fccdd0a2d507e8e615e611e9 - a0ba4f47915f49e53d721816a9198e8b30f12d20ec3689989175f1bf7a300eee0d9321fad8da232ece6efb8e9fd81b42ad161f6b9550a069e66b11b40487a5f5059 - - - 5121 - 1 - 628bd2cb2004694adaab7bbd778a25df25c47b9d4155a55f8fbd79f2fe154cff96adaab0613a6146cdaabe498c3a94e529d3fc1da2bd08edf54ed64d40dcd677764 - 7eac51d8277d70219a9694334a68bc8f0f23e20b0ff70ada6f844542dfa32cd4204ca1846ef76d811cdb296f65e260227f477aa7aa008bac878f72257484f2b6c95 - - - 6144 - 1 - 3e2e5b74e048f3add6d21faab3f83aa44d3b2278afb83b80b3c35164ebeca2054d742022da6fdda444ebc384b04a54c3ac5839b49da7d39f6d8a9db03deab32aade - 156c1c0311e9b3435cde0ddba0dce7b26a376cad121294b689193508dd63151603c6ddb866ad16c2ee41585d1633a2cea093bea714f4c5d6b903522045b20395c83 - - - 6145 - 1 - f1323a8631446cc50536a9f705ee5cb619424d46887f3c376c695b70e0f0507f18a2cfdd73c6e39dd75ce7c1c6e3ef238fd54465f053b25d21044ccb2093beb0150 - 15532b108313b5829c3621ce324b8e14229091b7c93f32db2e4e63126a377d2a63a3597997d4f1cba59309cb4af240ba70cebff9a23d5e3ff0cdae2cfd54e070022 - - - 7168 - 1 - 61da957ec2499a95d6b8023e2b0e604ec7f6b50e80a9678b89d2628e99ada77a5707c321c83361793b9af62a40f43b523df1c8633cecb4cd14d00bdc79c78fca516 - 5b863893f6d38b02ff7236c5a9a8ad2dba87d24c547cab046c29fc5bc1ed142e1de4763613bb162a5a538e6ef05ed05199d751f9eb58d332791b8d73fb74e4fce95 - - - 7169 - 1 - a003fc7a51754a9b3c7fae0367ab3d782dccf28855a03d435f8cfe74605e781798a8b20534be1ca9eb2ae2df3fae2ea60e48c6fb0b850b1385b5de0fe460dbe9d9f - 9b0d8db4435da75c601156df9d047f4ede008732eb17adc05d96180f8a73548522840779e6062d643b79478a6e8dbce68927f36ebf676ffa7d72d5f68f050b119c8 - - - 8192 - 1 - aae792484c8efe4f19e2ca7d371d8c467ffb10748d8a5a1ae579948f718a2a635fe51a27db045a567c1ad51be5aa34c01c6651c4d9b5b5ac5d0fd58cf18dd61a477 - 78566b797a8c67df7b1d60b97b19288d2d877bb2df417ace009dcb0241ca1257d62712b6a4043b4ff33f690d849da91ea3bf711ed583cb7b7a7da2839ba71309bbf - - - 8193 - 1 - bab6c09cb8ce8cf459261398d2e7aef35700bf488116ceb94a36d0f5f1b7bc3bb2282aa69be089359ea1154b9a9286c4a56af4de975a9aa4a5c497654914d279bea - 60bb6d2cf7225a2fa0ff5ef56bbe4b149f3ed15860f78b4e2ad04e158e375c1e0c0b551cd7dfc82f1b155c11b6b3ed51ec9edb30d133653bb5709d1dbd55f4e1ff6 - - - 16384 - 1 - f875d6646de28985646f34ee13be9a576fd515f76b5b0a26bb324735041ddde49d764c270176e53e97bdffa58d549073f2c660be0e81293767ed4e4929f9ad34bbb - 39a529334c57c4a381ffd2a6d4bfdbf1482651b172aa883cc13408fa67758a3e47503f93f87720a3177325f7823251b85275f64636a8f1d599c2e49722f42e93893 - - - 31744 - 1 - 62b6960e1a44bcc1eb1a611a8d6235b6b4b78f32e7abc4fb4c6cdcce94895c47860cc51f2b0c28a7b77304bd55fe73af663c02d3f52ea053ba43431ca5bab7bfea2 - f5e9d7121770d88f70ae9649ea713087d1914f7f312147e247f87eb2d4ffef0ac978bf7b6579d57d533355aa20b8b77b13fd09748728a5cc327a8ec470f4013226f - - - 1 - - - 123456789 - 1 - 2639f4cb - cbf43926 - - - The quick brown fox jumps over the lazy dog - 1 - 39a34f41 - 414fa339 - - - 0 - 1 - f71837502ba8e10837bdd8d365adb85591895602fc552b48b7390abd - c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 - 2c23146a63a29acf99e73b88f8c24eaa7dc60aa771780ccc006afbfa8fe2479b2dd2b21362337441ac12b515911957ff - 0eab42de4c3ceb9235fc91acffe746b29c29a8c366b7c60e4e67c466f36a4304c00fa9caf9d87976ba469bcbe06713b435f091ef2769fb160cdab33d3670680e - 6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7 - a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a - 0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004 - a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26 - - - 1 - 1 - bdd5167212d2dc69665f5a8875ab87f23d5ce7849132f56371a19096 - 5d53469f20fef4f8eab52b88044ede69c77a6a68a60728609fc4a65ff531e7d0 - 127677f8b66725bbcb7c3eae9698351ca41e0eb6d66c784bd28dcdb3b5fb12d0c8e840342db03ad1ae180b92e3504933 - 7127aab211f82a18d06cf7578ff49d5089017944139aa60d8bee057811a15fb55a53887600a3eceba004de51105139f32506fe5b53e1913bfa6b32e716fe97da - - - 69 - 1 - bb41c858301cb57230fd85083ba5c76044282170123a990f461e3b14 - ed379e9012f1d3a4fef5096688a2557b3ceb68c619245bffcf05a14a5a846fd9 - 71007b69c9b15fa519af8cab73514a8b92534513aa19153e7723e56ab54c34bce618bafef9ab92d13298bd35cb6e692a - 65e34948011bf0715855139bd03afcd01c10a0cba4a6c237cf38a79977080eace8f47e1e9ee14e7d60dcc2a9fe2e9dab47da5bd0ea1cd3932fa788f07e04d7a0 - - - 70 - 1 - c885e6c9be4a56615adc88657907b0449ff80a0b14459096caa14999 - 97a26b0e8066f35d400b7f12a6ae62a290bc1ca68660b4da8bf17afad6b8c948 - f82eab30f732330e9692860682ea083586216ee761ea08c014c8a8dd2dc08fc9901942f311f63f63bf3ab8b4dab14975 - 351164e46da292fd3d75132545401498d8983be9d143732de2df21fbf975a5e2c81584d90a773d34d7895d4cece328637ad2ffa973e21d4b6d03f39141cf44c8 - - - 71 - 1 - 5e31d4bc8904e6e77531e6b975d3dcdd4330c03620e5204bc047ce2e - 881ad9ffbd7f090efa51cbdfe93da23a0401f4446f7adf150d1c226851cbfff2 - 4bb4db01ac1c1d1a5de657436aca5275e4cae772bd6ab9b358e0ed094202be9600724a5bdfef0461ba7f1dc2427cf155 - 3ccc850d53a1287af7b4560b2ef0d43eb5d9a80d62a0e9cf1dbc040135921104d4395168e90bfc871773ebb34bca1bd67056e1cc7dc7a48ff7c3167d389f117c - - - 101 - 1 - 03b96617edf75c33e4949e2b462eb75828546a2eb8308bdd4c0859cf - af504dd36feb666b16fe553116adbdd604e449ca783e54a83171aee7ddc7e7b1 - 1c3a5ccc5dc4030ba16305a85f59dced8cb5023db4479e8b3749a7004ae77bb18996931af4c16409efcc0c72caa4c1a1 - c8560c1f73d8f309676b71c239c06fcf16a7a8fc710c593b0f83b32606d6d7c85b66f9ad987a4c24bad2f4a03a20da89d5f1f0987f60fc97f40f306e221edbef - - - 102 - 1 - c556db7b33e53bf1736d9bc84f30aa936a8ea4afcc590d70fbe647ab - 986b81944604ef3a1f26032a04537777c0ecd1cb66b37e3ca6e9b108befaf56c - ee8a6c983daaec5976cb0ed4446494d348d0d571eb4c77fd8cf7eebdaa0733f96de2bdd8cdd0c70f5fa4391a336107b9 - 9d6df09db9028fb57b45e346886fc0a6ba37d81607bf21b4c7e5ef811197e01eefd4be9c22e68a1b7c714f8f7924f2ea699b0e83a3c95379f7e8dd0ce20ca8b6 - - - 103 - 1 - 8b59fefcaf88187d29eb7b887f5c066475168a4348deac4f34993d63 - 120a055c592d237c0f535eebfc05673374fe4a50e1330293ef2c1ab611e0d0ba - 1f91ee551ad18f268876d1fc262f137fe196580216c5193819a95ec5222537d2a658dd129c3d8080e65ec7460f1f4704 - c2204bc64deef9249ab2e29187e31db863002b0ab130c1189d76d8e41f40aab95606b1cc3955788fd6e377d438c2c88c4aecf8f2096a5c8d214863cfbaa3ef5e - - - 133 - 1 - 67dd1365e9e2ec75f4d96a8460a0a9bf686827920e2b7fbbb0ef2925 - 721f0e936b3b93c0384f970c07680a8a6293e5012295e83615ea4657ed5d7e17 - 72d7f791dd6b7e70cb118634b458bf6977a64b1a6c27a136464ae12db9e7ecc5cb2d7d73c8faf07d4d93d1b2e2f1c0da - df7f2a48b2d154de7d3adf710cdd3d1528ebcb06371a72ae607e6e6836163b179800e1ef1ba08649ed405637c6617d6600b0afcdfd7fd9e39a1240f45c21ff96 - - - 134 - 1 - 6d8a43354b6c4e4e28e93ad60e16df666eeca61b360f718009c445a1 - 644e15224f5597351aef5c4bdd22b27ca0c19db2244431534c2a4a0bebfdf39c - 0dd4000d8a25d0cffdfe2b7151fc610cb5bf25d9249d855ce8d0d647d2151235a12092a75233efa7820fcdfedc59041f - 76dc7b65f9c314c810c75a7c7a520ca9bc750d14fb4984f982e86e4bb1e46f3df3ce529bfa7b52366884ec66a1fb6dcdb9ec04a72d9405e0af9fa1bde9054a32 - - - 135 - 1 - 3174e5126280625ecdfdb238d6a10d1c8b071031870ed197640cad90 - fded8fd9d6551c601eeb3b7c6bc5e5cfd8aad1d015b7e9aaa9c9b9475231d5e2 - 25d2be1f5a681f8135992e0cc18a7b0758d1a880eb3c64d9c722f80d68b744bb3a89c223a0c38164cf4a423f91f8a533 - d942df0df09ac042cd3b641144c98d8fda0980bb037fc5c0e7f2e9a073b073dc4bb8a8c1f4cb5b45f5805c6523741ed0571d6779b15829b2faa280fc60b50645 - - - 141 - 1 - a8df4dbdc4c5d535eb3f590dd7e097e0b1b3ace931447d987ac25e94 - 4134fa637cc87ac52320f311f4a681ef740b58da8ce2c09c721eedd720179c4f - cb6b185e7f5e232db435f2d02f6e8bf16db60f895fc92cbc7fbad356807c5d693853fe638305c4d163d7b35d51b9041c - 3e92887ff9919469c7927cfc56523492abdcfda14d7fad2bf1de875fa05e2416674ae1793799b7a0703d4da88cf67d09ac64004dc4e332adb6b199ba6ee52479 - - - 142 - 1 - 4353e7ed38eb9cc41abbf0709c6ab707de70d759e5d6eedf09043fd0 - 4996d371abd506e72178b4cbea8e9f5ad781a5a566543d97f89a4efb13d5bb5f - abe7a3a2309b13851157043658589d3f011cf2b58ded164cefc56654146f1884ed73d195c5176ea879f7821e9c332b3a - 64e5a4e32097cf9eeb8170b582503af020076f2856d7e67c0acb4c53c5f7fcb6bed9e330bcaac7c9229d7875efbe233877d5d3a43a25376eaf7804320599676e - - - 143 - 1 - 64d0e8a1be3cf30ef6727b30a6e428f7f068d44634c943d277ad8e7f - 295fef4d46110ee21fba0d1798a1bb7c1bbc88306bc9b7661b18ace7170f02ae - f25214f92d3b1ccc162c46a74ad8fafd33e00abdcb3048744d93d36bc77f2796f92d91cea8946b357f14f249792dd8de - eb9748309c6b70ffe82820052ad26ea99f43968d2af359adc804b2a76741a62ea8d710f018ea113c2259d0bd6687e3838602ae6c1dff727ae985f059141c7217 - - - 1023 - 1 - e7d72a8635ec1a6b177046d8f98c60bb934204fc7a6990469bed72cd - 3456dac4a1209693b8c2bd2cd27fc64c330ce283b8d43a0d9662761825865cbc - db04f83cdfeb0bc711e9e2aca51f838e8dd725155daa64cbd3b913d40e56475ecc7b4ecab75b771a5f7ccc365ef3a5ae - 703be67f6d9c1a2d99b1995e60744a05097ddde919f9a4eb4ee3fe0088c9e5a502daa96064f284fbda40d1b22cc70d273b46bb4e4f48fe0e5a2d29f296bfe8a6 - - - 1024 - 1 - 59e82bec68b80a525fd12a0408580ecda62ee6d4c8b12d6529ce0c20 - ba7f1834cddbba9f82cd4dcf7a106bb2e615fec90020f5a5de8efff8d49198b6 - 885b25cbe374a0e76d495caea95475a2b870909abe434035316d4c60dcade94b8b18b18102059034de194e9f1e682811 - 8f0c52262455dca2c7d7a6157bbc545cb34cea699290735fbc46b5c83173a458d53666e2137eb66e3b672070a97134775e3006a8ee542585ddb54183932f768d - - - 1025 - 1 - faa2566329eef816510312ec08e329cdc855e96a440e47e92da4cc92 - 413cf357775aef534fcd49da91a30f7877b50bbd924a20649315a4827f79cac0 - d00dfd2110cb761ca3f3f3195037e89b29660805e6ce37e9f3164a22517e1c1ac937adbd38c78ad568ada4340f039e58 - 4d77323a341a3c8edd736ed718cb07deb66bcc5317dbc6f73da4c686dcec8440e414a2ed46ed5219cc226160b2416b276d9d9d95ad83c4c9e301397c89e37864 - - - 2048 - 1 - f761d1bb315dd7d743de1e76b6fe0e8a9f32c74be8819d2f09b49349 - 51a0283a8332e99679957152f59acd063596f607f567053ef538e64c9f75ecf2 - 44f9abfc39f11d63ab2e92f5b2c62b770a76bcedee29e2674c658088c39e383c03ed2c3d9746af7aadf76c0cc18144f9 - 746a42aeef3cdf3f3deb899628f20c36c92e2268fb0ad45883cfbfe74394ff84a15a6f421d26f46c231a911ddae489049019c610e2c0a309e4b9704e57035cd8 - - - 2049 - 1 - 13d59fd552e8a83f759fa10b443d560e36f9b32d3d54553690036282 - aee1e49906909f36267064b9e924a42cc84832c16f2b453ce3dc90ed09431ee9 - 5e3347f462f9514df49d6d6d9f2df802144318dcb22fef6add07ddfb46f72bdf1c9bb9323bcaee870039af86978f1068 - 0354e1653a3c8f4307f4d31f83e84f532598b69211618a73088969768ed995a718fb1da5feaddb4ad79600ee76efe2a52b58bd33029ee291af5419f392f8c16e - - - 3072 - 1 - 7e28e44f1df828b246b1952d24c7de5faa98d139a9daee2e491d6edb - 3d6f9314a37c0dec3cd87ccfb4b5d515c3449e40c1640c0123e511134fd3371c - 49b4adb6da7229dd2803835c7f3846376742ec22728aaf9117ebe4f1ed9812409781400c206f0132b1d992d2794c3ec6 - 776f1df7cbffdff1df64d2fdcb3b3a238667916f901b27b5cddc54f2664572ac6326459b44ab1d28dd023b2a44a868cb6a950ceec4f4720c58cc2c8ad03f5c55 - - - 3073 - 1 - d5756b31553455e694bde2514720f02e6eff5004df280db6741731c0 - 5f24381c43d4473a3a65dba2430023c3415eb682d7ab0baffec2576c6e20649e - 2d9861baf20a6d4d094c8eb8e2f4462492856567fafc8e23b5d9bd696098561315202928c5bae4dd73dc0ed0dce7bc6e - b53488fe0c03f3ddd91cf153e7cc33701cc4789bb8a02c3a4c8215d6abab0589dffc7778058b606c20725cca5fe1b3c480269eaa43677eb1b5ba84c9ee4c6ef1 - - - 4096 - 1 - e710eeadf70563847a754d60ba7c97362b08b0eec91e08b7f628dce6 - 40e655a0042c7fc243710579c0d6fad05daceba7d474de35cccb17d194c2cda2 - de7e4e4470424afae94fea724569c73744f766215c48e5314dd0b2256f8c2a5848bbe3f341f32a59e6b4d055f2fde812 - ac8fc5c0a7dc20b9234524accd6000bcafbad2850a66455600873c13d1cb6875824f6888630829896eb411ee4973896e0fb6487d8be89fcc3dfd9eed6c93fe90 - - - 4097 - 1 - ed37079a71b014db056fba28be20e275bef7002152685f55563ee7ba - c1743d3e79e9a1516251b027c4210f8b592630bfc9456d4ce36b17e9908bf8fa - 958c222c76083e19e2e64edf9b71a73844090592f6282874dcad59ff94c078a315c5f16f625643a8c052f306cfc280fb - 61d8587ac16b5f06e2010ab90e4e369d609ba8e995cb5a65098ef4d681d4c11ef46f1a62bb897981f5e8bce8496645885302ca8269a4042c337e7564e4075bf0 - - - 5120 - 1 - c5bb921beb40e901bb6a8b9ff87f54acd102b31617b69dae27d80edc - 791faf2ff8ab27eb6ea5b860baa8db20336213bbe1da02e050f4da3451d868e4 - f4edc71aa7bcf93bf466b278a378711b4333ab7c8bf6a0b597d93a6068785ad95a390b6d7e0cf21ee611e0fe5cb4b620 - 161e9fe6165a4e9cc91779fe436e5b8e59d11bfb2328bdf389de7cefa2d613f36d8c4249400ae1b2bfed5ebbb52ab2c164b7498a7c187d4f52e7d98a7ef77ffb - - - 5121 - 1 - cefb803e3da97cca87920e3142f84f9601eb3f1a68383d05c9c71e09 - d07ffdb737ad569dc7f648f0bc6dd0968475a7c72dc8aaf8a40184829d9e276d - 24395363a35adc5c9cc1fab5346afdacc0432727c3ff6b5456b966fd8b168ba0c6151d4853959175c7fb83845fc5c430 - ff6253c8686d52864b21b6fac5bd91dcadddb30daf39e8a70f07c26904c49889f32449e5cbeb8781c21dff89dce285783bba9df10d6c86fcd24064ed970da13d - - - 6144 - 1 - e46947a65472b14a893436f8d8aeb434a324470d21b85993122a25d3 - 2d31fe5b4080fb6a965196936406cb33d3a929030ad9b151dde066e533bb4b99 - 891902665b409c474d75a53985a5e5e324cb05f95edeb0e8df714a8895353faa5c8aa88849189aa8a78328ab899a70d9 - 2cfea6de3c394e88ffbc2236d8b87381cb14e6e5a23235e5d03fa2f395383dd239df59807edd148d39bb271d64e1ab6f7746a9bbd16e553a538ea32bebd3bfee - - - 6145 - 1 - 9eaa48302221fbd4458032b63c2a0fd656f66baf06be0e727c56410a - 2277dd53396cef38fe8aa8716739e7d2f4fa33a55c697f21409e96715eca91dc - 159b07f2aeac0a2aee7f65a367003acfd3f42efce3799170bc8cf29d2bad1eeccdae3b35b86d5c95b980d5d026e68153 - d5fdcdb2a4cf311ab061ccf062a62bbb2802103f30b87e077ef066f5b20e01b32e4a7443d5bfa518767c92c76b0835a3bebd013d5749fd5ab9586b72824b5a1f - - - 7168 - 1 - 2e4f3b82daecda1e8f546590c2006625001fd3802b04781233355d38 - de9a4c24206979eea656585ffc5877faf6203b1bc90a4fbde802f05c36d44c73 - b1bd8d0584707f9cca3adc794da83a54d268b0512e755d8e9eb7e8f209189de3447fb14cf3e3b0e34634c62b96e09d80 - 3d29a32838788f1068a017d30abbde48438e200164d16810cfc5e72131ca0493c3f147d77e58b594f3dc6dce0fe6d157edb37ddd16fbafa8892d03dd3b7438a6 - - - 7169 - 1 - ce0dc42b066c8d4aa4c412e625896c3253a371fba7647049689d269e - 1c76a266bcfc80883d589fbd593ccd628d0b368ecbb40bd9e932d9def73598c9 - bd3c93282ea84a25b0096468012511b8b2f8217e185d63800511048bd0da36c0d8e1af3113a68f68f0fdaca07fb4fe4f - c04d24a5098866a4689f8dea4bae1ca23a86ae20c38550b3ff42694730fcc71fce3a13e6eddd1e948cc5f42a6b479612ec8f5055eb541de81a72e4cf99c35a3b - - - 8192 - 1 - b6b0c36fe2b845f393199b5896c06ea2203535fa40f61454f66be7ec - ae1e2d41aabdd5f20028d82dbd03bb02c64de6021b9c5afb5db3bec5b415528c - dfd45758ce0596a69b5ebcfbd41fd82ab73336b0798882a45b0fa19bdbc31cbfd2dbfc21b599d7baaaf0aa6db172d384 - 54944f3d94baf90603f2d2536d7612aced75dee0e8f1e9e70490729f33539e87a87c1db5eb12779802e47a9a2c4629f00d6363ea282bf876c28779140ab73d17 - - - 8193 - 1 - a7232b923c520ff46e1d3cf1c21fb712308b37c54ddf49b8a57618b0 - 91cbc140c95662bd52cfb156b36fe9eed52f264dd7babde25cb5e84837633b88 - d68d76b03025d73fad0495718910f5167bca3667e7dcd90a91f721ec8d28f79d8ae7575db6ddc0d889b50619c3aed756 - 757d20247c70b52e77308ef1bc1eb3dcb5ccd04f9e22c62fb2c62ad49350f336a08d126e9d00edb85af69ff92524b477b9f515c4ce8742cfa2a9c6b243cbe6a0 - - - 16384 - 1 - ee18735acfa752902c13bd2fa0472b2fb11687f80bd1b717edd92a5e - 8f8eeb8c5f4c7ca72654a2f6b8ee7c84e0367846655af46494e3e98f91208a43 - 6cbb72f240f59e8acef6e7995430e27d277b0c838f6fe2873ce8ae2ca05ce74c66d89d1a9b974026de3d8694be65ac73 - 7e94924b09f131d8e32a1c6ed0f5340e55aae3bbfd3619cd297acf40730d1ebf92acd763a06a25d58e94d214cacca52542768e78851ba1d82f56c0154d2fd5c8 - - - 31744 - 1 - 314056dd3d94ca15731815ab1b85322ba07ff26e90555d435822e1af - cbc6fd3ce90dafe74a83bb29674e48082f59efd400b989214a63e85ae1984d43 - 93115f5c2f020a9c6cd4bf4a20b09abf0096b78b0e2646e64aeee0d87498d2b2cdb5458daf0253273942499a757cf352 - 827727b142e9a09e066f3847c800912b7d76c26cc22874e92b359880b4dc2f593cf13c473004d0033b7afe218db7b58792b5545c812baeaf6d096cbe9f36ded2 - - - - 1 - f71837502ba8e10837bdd8d365adb85591895602fc552b48b7390abd - c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 - 2c23146a63a29acf99e73b88f8c24eaa7dc60aa771780ccc006afbfa8fe2479b2dd2b21362337441ac12b515911957ff - 0eab42de4c3ceb9235fc91acffe746b29c29a8c366b7c60e4e67c466f36a4304c00fa9caf9d87976ba469bcbe06713b435f091ef2769fb160cdab33d3670680e - 6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7 - a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a - 0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004 - a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26 - - - The quick brown fox jumps over the lazy dog - 1 - 310aee6b30c47350576ac2873fa89fd190cdc488442f3ef654cf23fe - 4d741b6f1eb29cb2a9b9911c82f56fa8d73b04959d3d9d222895df6c0b28aa15 - 283990fa9d5fb731d786c5bbee94ea4db4910f18c62c03d173fc0a5e494422e8a0b3da7574dae7fa0baf005e504063b3 - d135bb84d0439dbac432247ee573a23ea7d3c9deb2a968eb31d47c4fb45f1ef4422d6c531b5b9bd6f449ebcc449ea94d0a8f05f62130fda612da53c79659f609 - d15dadceaa4d5d7bb3b48f446421d542e08ad8887305e28d58335795 - 69070dda01975c8c120c3aada1b282394e7f032fa9cf32f4cb2259a0897dfc04 - 7063465e08a93bce31cd89d2e3ca8f602498696e253592ed26f07bf7e703cf328581e1471a7ba7ab119b1a9ebdf8be41 - 01dedd5de4ef14642445ba5f5b97c15e47b9ad931326e4b0727cd94cefc44fff23f07bf543139939b49128caf436dc1bdee54fcb24023a08d9403f9b4bf0d450 - - - 786a02f742015903c6c6fd852552d272912f4740e15847618a86e217f71f5419d25e1031afee585313896444934eb04b903a685b1448b755d56f701afe9be2ce - 2fa3f686df876995167e7c2e5d74c4c7b6e48f8068fe0e44208344d480f7904c36963e44115fe3eb2a3ac8694c28bcb4f5a0f3276f2e79487d8219057a506e4b - 78a9fc048e25c6dcb5de45667de8ffdd3a93711141d594e9fa62a959475da6075ea8f0916e84e45ad911b75467077ee52d2c9aebf4d58f20ce4a3a00458b05d4 - 45813f441769ab6ed37d349ff6e72267d76ae6bb3e3c612ec05c6e02a12af5a37c918b52bf74267c3f6a3f183a8064ff84c07b193d08066789a01accdb6f9340 - 956da1c68d83a7b881e01b9a966c3c0bf27f68606a8b71d457bd016d4c41dd8a380c709a296cb4c6544792920fd788835771a07d4a16fb52ed48050331dc4c8b - 965f20f139765fcc4ce4ba3794675863cac24db472cd2b799d035bce3dbea502da7b524865f6b811d8c5828d3a889646fe64a380da1aa7c7044e9f245dced128 - ec295b5783601244c30e4641e3b45be222c4dce77a58700f53bc8ec52a941690b4d0b087fb6fcb3f39832b9de8f75ec20bd43079811749cdc907edb94157d180 - 61c72f8ccc91dbb54ca6750bc489672de09faedb8fdd4f94ff2320909a303f5d5a98481c0bc1a625419fb4debfbf7f8a53bb07ec3d985e8ea11e72d559940780 - e59b9987d428b3eda37d80abdb16cd2b0aef674c2b1dda4432ea91ee6c935c684b48b4428a8cc740e579a30deff35a803013820dd23f14ae1d8413b5c8672aec - cd9fcc99f99d4cc16d031900b2a736e1508db4b586814e6345857f354a70ccecb1df3b50a19adaf43c278efa423ff4bb6c523ec7fd7859b97b168a7ebff8467c - 0602185d8c3a78738b99164b8bc6ffb21c7debebbf806372e0da44d121545597b9c662a255dc31542cf995ecbe6a50fb5e6e0ee4ef240fe557eded1188087e86 - 75351313b52a8529298d8c186b1768666dcca8595317d7a4816eb88c062020c0c8efc554bb341b64688db5ccafc35f3c3cd09d6564b36d7b04a248e146980d4b - e3128b1d311d02179d7f25f97a5a8bee2cc8c86303644fcd664e157d1fef00f23e46f9a5e8e5c890ce565bb6abd4302ce06469d52a5bd53e1c5a54d04649dc03 - c2382a72d2d3ace9d5933d00b60827ed380cda08d0ba5f6dd41e29ee6dbe8ecb9235f06be95d83b6816a2fb7a5ad47035e8a4b69a4884b99e4bece58cab25d44 - e55fd611a16696f8295ea5120a151e312e5dfb1488ac74be64118ffe1bc1d539e725ad0440e5213de297ba435d381c66edf88eebf28b8d640e31103842d3be29 - 8d1090909017add40e749df2d0ebac43273d6fc816bc4ffaf2a6dfabe4206dea13677d2002399e4a38e700d8083db4af8341ee9b3a5147110b6a963a3894e4e2 - 7a9e5283a15d13b995755360fde4c65c2ae1bc0cf33e8db2ce8416e5d10697c73fc4b2622a29b938a1faec43d931b02e71ad8635e071265633643a9d9396ec28 - 84ef376f8080d5d19a6914c9b8e8eaf71b3f716f5b4f0da4fdf81b6c465a5656e01b52807011e1fce05e77729aae5422c6424fe241f7ba93da39456e5c5448d9 - 146560fd774a01704fcce96f5f9b4b042ae43c928ad6546fb070b0ec18d2a4ac592578af038a1f6c5b79144fb16a0c6428999d518384d8349a3ec3707aa50ac2 - 6a4fd5fd8cc0a8e717b28757c896096b0452750684cf7c6c3636f51a98beb32c88f32c9ed7140f90a2cdff2fc4ff49bcaa257f14a6bf6f926530cb47cc7aa340 - 8f204a6e0204733471290db377aff78f069bc2d3d943de81f9a0b71764204c71fb3b1c09a3cd7f3b9f290b7325afb591597ebebc853657acff0fdb242f745d16 - c7a3d6a53bd11772ecf077c1dc9633a39c6fe691ec07a530e0e765c0a9d5a01a16f00995536578b83e54c2821766ac7ac6ae86e22269a5d14208ccac954cc95f - a1aca2bd515e5a87ed22476d9209f748754ebaeddef9cd1e1d57c12cc4b9029342cb74899a9f23cfece0ee8be2fd86e9e72a9289921231a6e40883d01694e0dd - c4ce856743cab7efd10591a0b43e0049dee967baaf0ac042fe571a62b01687c99ac345fd6bb3a5ffec83b31f96f92bd00337a59bb6f066696c2968e624461644 - 92fecb457c0e6c3de55bf61fbabdcf805191fd53aa8d46efbf7a4e76828ac79cd10b5a00aab74e3c9c5bc053cfb742e8170604a85087bf9aa634729b2a7939c6 - 71b0c49f685263009535c8d90d3cb3983eb39840f5b6e32072ac239f2a5f7fc72d1ef13a5a765a82f1485dfe63b0f5145726940848ca2390a57dc5e719f17b4e - 39b663dd381569a0b708005e423b1813dd90e2a0b3716995a7366ce226f2d624c5826aa40b5eee94003ccab32ddf940d3b8bb7312643d1e1bb3ae10228fd0d84 - 643e53172be0fd9c4a9480ee718205fa593b0c0ee325d92248bceac3f8c7b31a4fb23b9465df1df8f822da17b7f7ec0d538e5a462e2b559578b313b84392ea2e - ec21a001756ee29de1e67ad1b5fa4e5f5ef702332ac30a38fd3e8765355bdbcd8052ef4343bd9b9f9ef577cd93b8c20c64646ab48950922d0a64f11aa60abc04 - 6e02a28235a5fea5bb41fe376b384a8f83376b633ae67572d73b4152c94b07a5fadb1478a2debefb3ac30cb5594e0352b108b73163f9e09f260e4f483900a039 - 00f382e50aa061d8e3eac0a7bec89c711d2ec4c315d894fef92a8c71d79b4f9b8b6182bd2965b2428c12001c0748efff0e7a9610cea33f83a055c695d5ab767f - fdaf9dca1aaf9c01e65379b5b17dffc40f890721627bf5eca54558245324ad8983b7f445a642f9d9388367226e4a1d2fb15591ac0cbeec886c247eee76d3a576 - c3494504df969632ed8a0827ab8508354f31059e7cd44ae21a27a510793cffb53fc21dd1a42efbb0dfe7b22435450056443a2090992ff6043818fb0b25b1d5d0 - - - af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262 - 2d3adedff11b61f14c886e35afa036736dcd87a74d27b5c1510225d0f592e213 - 10108970eeda3eb932baac1428c7a2163b0e924c9a9e25b35bba72b28f70bd11 - 42214739f095a406f3fc83deb889744ac00df831c10daa55189b5d121c855af7 - d00278ae47eb27b34faecf67b4fe263f82d5412916c1ffd97c8cb7fb814b8444 - e776b6028c7cd22a4d0ba182a8bf62205d2ef576467e838ed6f2529b85fba24a - 5f4d72f40d7a5f82b15ca2b2e44b1de3c2ef86c426c95c1af0b6879522563030 - b98cb0ff3623be03326b373de6b9095218513e64f1ee2edd2525c7ad1e5cffd2 - 7124b49501012f81cc7f11ca069ec9226cecb8a2c850cfe644e327d22d3e1cd3 - 015094013f57a5277b59d8475c0501042c0b642e531b0a1c8f58d2163229e969 - 9b4052b38f1c5fc8b1f9ff7ac7b27cd242487b3d890d15c96a1c25b8aa0fb995 - 9cadc15fed8b5d854562b26a9536d9707cadeda9b143978f319ab34230535833 - 628bd2cb2004694adaab7bbd778a25df25c47b9d4155a55f8fbd79f2fe154cff - 3e2e5b74e048f3add6d21faab3f83aa44d3b2278afb83b80b3c35164ebeca205 - f1323a8631446cc50536a9f705ee5cb619424d46887f3c376c695b70e0f0507f - 61da957ec2499a95d6b8023e2b0e604ec7f6b50e80a9678b89d2628e99ada77a - a003fc7a51754a9b3c7fae0367ab3d782dccf28855a03d435f8cfe74605e7817 - aae792484c8efe4f19e2ca7d371d8c467ffb10748d8a5a1ae579948f718a2a63 - bab6c09cb8ce8cf459261398d2e7aef35700bf488116ceb94a36d0f5f1b7bc3b - f875d6646de28985646f34ee13be9a576fd515f76b5b0a26bb324735041ddde4 - 62b6960e1a44bcc1eb1a611a8d6235b6b4b78f32e7abc4fb4c6cdcce94895c47 - - - a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a - 5d53469f20fef4f8eab52b88044ede69c77a6a68a60728609fc4a65ff531e7d0 - ed379e9012f1d3a4fef5096688a2557b3ceb68c619245bffcf05a14a5a846fd9 - 97a26b0e8066f35d400b7f12a6ae62a290bc1ca68660b4da8bf17afad6b8c948 - 881ad9ffbd7f090efa51cbdfe93da23a0401f4446f7adf150d1c226851cbfff2 - af504dd36feb666b16fe553116adbdd604e449ca783e54a83171aee7ddc7e7b1 - 986b81944604ef3a1f26032a04537777c0ecd1cb66b37e3ca6e9b108befaf56c - 120a055c592d237c0f535eebfc05673374fe4a50e1330293ef2c1ab611e0d0ba - 721f0e936b3b93c0384f970c07680a8a6293e5012295e83615ea4657ed5d7e17 - 644e15224f5597351aef5c4bdd22b27ca0c19db2244431534c2a4a0bebfdf39c - fded8fd9d6551c601eeb3b7c6bc5e5cfd8aad1d015b7e9aaa9c9b9475231d5e2 - cf3ccff92480a29160c2d38317c430e14749bfee1788106957dfe73f8c4930e5 - 4134fa637cc87ac52320f311f4a681ef740b58da8ce2c09c721eedd720179c4f - 4996d371abd506e72178b4cbea8e9f5ad781a5a566543d97f89a4efb13d5bb5f - 295fef4d46110ee21fba0d1798a1bb7c1bbc88306bc9b7661b18ace7170f02ae - 3456dac4a1209693b8c2bd2cd27fc64c330ce283b8d43a0d9662761825865cbc - ba7f1834cddbba9f82cd4dcf7a106bb2e615fec90020f5a5de8efff8d49198b6 - 413cf357775aef534fcd49da91a30f7877b50bbd924a20649315a4827f79cac0 - 51a0283a8332e99679957152f59acd063596f607f567053ef538e64c9f75ecf2 - aee1e49906909f36267064b9e924a42cc84832c16f2b453ce3dc90ed09431ee9 - 3d6f9314a37c0dec3cd87ccfb4b5d515c3449e40c1640c0123e511134fd3371c - 5f24381c43d4473a3a65dba2430023c3415eb682d7ab0baffec2576c6e20649e - 40e655a0042c7fc243710579c0d6fad05daceba7d474de35cccb17d194c2cda2 - c1743d3e79e9a1516251b027c4210f8b592630bfc9456d4ce36b17e9908bf8fa - 791faf2ff8ab27eb6ea5b860baa8db20336213bbe1da02e050f4da3451d868e4 - d07ffdb737ad569dc7f648f0bc6dd0968475a7c72dc8aaf8a40184829d9e276d - 2d31fe5b4080fb6a965196936406cb33d3a929030ad9b151dde066e533bb4b99 - 2277dd53396cef38fe8aa8716739e7d2f4fa33a55c697f21409e96715eca91dc - de9a4c24206979eea656585ffc5877faf6203b1bc90a4fbde802f05c36d44c73 - 1c76a266bcfc80883d589fbd593ccd628d0b368ecbb40bd9e932d9def73598c9 - ae1e2d41aabdd5f20028d82dbd03bb02c64de6021b9c5afb5db3bec5b415528c - 91cbc140c95662bd52cfb156b36fe9eed52f264dd7babde25cb5e84837633b88 - 8f8eeb8c5f4c7ca72654a2f6b8ee7c84e0367846655af46494e3e98f91208a43 - cbc6fd3ce90dafe74a83bb29674e48082f59efd400b989214a63e85ae1984d43 - - - - - - - - - - - - - - string - substring - - 1 - - - - - - - 'Abc', 'a' - 2 - Abc - a - - - - 3 - project.name - 7 - 5 - - - - 1 - 12 - 7 - - - - 3 - project.name - 7 - 12 - 7 - - - - - 0 - - - Just a string. - Just a string. - 1 - - - ${string::empty( - environment::get-folder-path('Desktop') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('Programs') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('Personal') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('MyDocuments') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('Favorites') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('Startup') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('Recent') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('SendTo') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('StartMenu') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('MyMusic') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('MyVideos') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('DesktopDirectory') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('MyComputer') - )} - True - 1 - - - ${string::empty( - environment::get-folder-path('NetworkShortcuts') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('Fonts') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('Templates') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('CommonStartMenu') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('CommonPrograms') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('CommonStartup') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('CommonDesktopDirectory') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('ApplicationData') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('PrinterShortcuts') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('LocalApplicationData') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('InternetCache') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('Cookies') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('History') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('CommonApplicationData') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('Windows') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('System') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('ProgramFiles') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('MyPictures') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('UserProfile') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('SystemX86') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('ProgramFilesX86') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('CommonProgramFiles') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('CommonProgramFilesX86') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('CommonTemplates') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('CommonDocuments') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('CommonAdminTools') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('AdminTools') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('CommonMusic') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('CommonPictures') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('CommonVideos') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('Resources') - )} - False - 1 - - - ${string::empty( - environment::get-folder-path('LocalizedResources') - )} - True - 1 - - - ${string::empty( - environment::get-folder-path('CommonOemLinks') - )} - True - 1 - - - ${string::empty( - environment::get-folder-path('CDBurning') - )} - False - 1 - - - ${math::less(string::get-length(environment::get-machine-name()), 255)} - True - 1 - - - ${string::empty(environment::get-operating-system())} - False - 1 - - - ${string::substring(environment::get-operating-system(), '0', '20')} - Microsoft Windows NT - 1 - - - ${string::empty(environment::get-user-name())} - False - 1 - - - ${string::empty(environment::get-variable('SystemRoot'))} - False - 1 - - - newline() -> ${environment::newline()} - newline() -> - 1 - - - newline() -> ${environment::newline()} - newline() -> - 1 - - - variable-exists('PATH') -> ${environment::variable-exists('PATH')} - variable-exists('PATH') -> True - 1 - - - variable-exists('PATH!@#') -> ${environment::variable-exists('PATH!@#')} - variable-exists('PATH!@#') -> False - 1 - - - ${string::empty(environment::is64bit-process())} - False - 1 - - - ${string::empty(environment::is64bit-operating-system())} - False - 1 - - - ${math::less('0', environment::processor-count())} - True - 1 - - - contains('Abc', 'a') -> ${string::contains('Abc', 'a')} - contains('Abc', 'a') -> False - 1 - - - contains('Abc', 'A') -> ${string::contains('Abc', 'A')} - contains('Abc', 'A') -> True - 1 - - - ends-with('', '') -> ${string::ends-with('', '')} - ends-with('', '') -> True - 1 - - - ends-with('', 'A') -> ${string::ends-with('', 'A')} - ends-with('', 'A') -> False - 1 - - - ends-with(' ', ' ') -> ${string::ends-with(' ', ' ')} - ends-with(' ', ' ') -> True - 1 - - - ends-with('AB', 'CD') -> ${string::ends-with('AB', 'CD')} - ends-with('AB', 'CD') -> False - 1 - - - ends-with('ABCD', 'CD') -> ${string::ends-with('ABCD', 'CD')} - ends-with('ABCD', 'CD') -> True - 1 - - - get-length('') -> ${string::get-length('')} - get-length('') -> 0 - 1 - - - get-length(' ') -> ${string::get-length(' ')} - get-length(' ') -> 1 - 1 - - - empty() -> ${string::empty('')}, - empty( ) -> ${string::empty(' ')} - empty() -> True, - empty( ) -> False - 1 - - - get-length('ABCDE') -> ${string::get-length('ABCDE')} - get-length('ABCDE') -> 5 - 1 - - - index-of('', '') -> ${string::index-of('', '')} - index-of('', '') -> 0 - 1 - - - index-of(' ', ' ') -> ${string::index-of(' ', ' ')} - index-of(' ', ' ') -> 0 - 1 - - - index-of(' ', 'A') -> ${string::index-of(' ', 'A')} - index-of(' ', 'A') -> -1 - 1 - - - index-of('AB', 'B') -> ${string::index-of('AB', 'B')} - index-of('AB', 'B') -> 1 - 1 - - - index-of('ABAB', 'B') -> ${string::index-of('ABAB', 'B')} - index-of('ABAB', 'B') -> 1 - 1 - - - index-of('AB', 'C') -> ${string::index-of('AB', 'C')} - index-of('AB', 'C') -> -1 - 1 - - - last-index-of('AB', 'B') -> ${string::last-index-of('AB', 'B')} - last-index-of('AB', 'B') -> 1 - 1 - - - last-index-of('ABAB', 'B') -> ${string::last-index-of('ABAB', 'B')} - last-index-of('ABAB', 'B') -> 3 - 1 - - - last-index-of('AB', 'C') -> ${string::last-index-of('AB', 'C')} - last-index-of('AB', 'C') -> -1 - 1 - - - index-of-any('AB', 'BA') -> ${string::index-of-any('AB', 'BA')} - index-of-any('AB', 'BA') -> 0 - 1 - - - index-of-any('ABAB', 'AB') -> ${string::index-of-any('ABAB', 'AB')} - index-of-any('ABAB', 'AB') -> 0 - 1 - - - last-index-of-any('AB', 'BA') -> ${string::last-index-of-any('AB', 'BA')} - last-index-of-any('AB', 'BA') -> 1 - 1 - - - last-index-of-any('ABAB', 'BA') -> ${string::last-index-of-any('ABAB', 'BA')} - last-index-of-any('ABAB', 'BA') -> 3 - 1 - - - pad-left('Abc', ' ', '4') -> ${string::pad-left('Abc', 4, ' ')} - pad-left('Abc', ' ', '4') -> Abc - 1 - - - pad-right('Abc', ' ', '4') -> ${string::pad-right('Abc', 4, ' ')} - pad-right('Abc', ' ', '4') -> Abc - 1 - - - replace('', '', '') -> ${string::replace('', '', '')} - replace('', '', '') -> - 0 - - - replace('abc', 'b', 'ABC') -> ${string::replace('abc', 'b', 'ABC')} - replace('abc', 'b', 'ABC') -> aABCc - 1 - - - replace('abc123', 'bc1', '') -> ${string::replace('abc123', 'bc1', '')} - replace('abc123', 'bc1', '') -> a23 - 1 - - - starts-with('', '') -> ${string::starts-with('', '')} - starts-with('', '') -> True - 1 - - - starts-with('', 'A') -> ${string::starts-with('', 'A')} - starts-with('', 'A') -> False - 1 - - - starts-with(' ', ' ') -> ${string::starts-with(' ', ' ')} - starts-with(' ', ' ') -> True - 1 - - - starts-with('AB', 'CD') -> ${string::starts-with('AB', 'CD')} - starts-with('AB', 'CD') -> False - 1 - - - starts-with('ABCD', 'AB') -> ${string::starts-with('ABCD', 'AB')} - starts-with('ABCD', 'AB') -> True - 1 - - - substring('ABCD', '2', '1') -> ${string::substring('ABCD', '2', '1')} - substring('ABCD', '2', '1') -> C - 1 - - - substring('ABCD', '2', '3') -> ${string::substring('ABCD', '2', '3')} - substring('ABCD', '2', '3') -> - 0 - - - substring('ABCD', '2', '4') -> ${string::substring('ABCD', '2', '4')} - substring('ABCD', '2', '4') -> - 0 - - - substring('ABCD', '2') -> ${string::substring('ABCD', '2')} - substring('ABCD', '2') -> CD - 1 - - - substring('ABCD', '4') -> ${string::substring('ABCD', '4')} - substring('ABCD', '4') -> - 1 - - - substring('ABCD', '5') -> ${string::substring('ABCD', '5')} - substring('ABCD', '5') -> - 0 - - - to-lower('') -> ${string::to-lower('')} - to-lower('') -> - 0 - - - to-lower('ABCD') -> ${string::to-lower('ABCD')} - to-lower('ABCD') -> abcd - 1 - - - to-lower('abcd') -> ${string::to-lower('abcd')} - to-lower('abcd') -> abcd - 1 - - - to-upper('') -> ${string::to-upper('')} - to-upper('') -> - 0 - - - to-upper('ABCD') -> ${string::to-upper('ABCD')} - to-upper('ABCD') -> ABCD - 1 - - - to-upper('abcd') -> ${string::to-upper('abcd')} - to-upper('abcd') -> ABCD - 1 - - - trim(' abc ') -> ${string::trim(' abc ')} - trim(' abc ') -> abc - 1 - - - trim-end(' abc ') -> ${string::trim-end(' abc ')} - trim-end(' abc ') -> abc - 1 - - - trim-start(' abc ') -> ${string::trim-start(' abc ')} - trim-start(' abc ') -> abc - 1 - - - quote() -> ${string::quote('')} - quote() -> "" - 1 - - - quote(a b c) -> ${string::quote('a b c')} - quote(a b c) -> "a b c" - 1 - - - un-quote() -> ${string::un-quote('')} - un-quote() -> - 1 - - - un-quote(") -> ${string::un-quote('"')} - un-quote(") -> - 1 - - - un-quote("a b c") -> ${string::un-quote('"a b c"')} - un-quote("a b c") -> a b c - 1 - - - un-quote(""a b c"") -> ${string::un-quote('""a b c""')} - un-quote(""a b c"") -> a b c - 1 - - - equal('', '') -> ${string::equal('', '')} - equal('', '') -> True - 1 - - - equal(' ', ' ') -> ${string::equal(' ', ' ')} - equal(' ', ' ') -> True - 1 - - - equal('A', 'B') -> ${string::equal('A', 'B')} - equal('A', 'B') -> False - 1 - - - ${property::exists('My_property')} - False - 1 - - - ${property::get_value('My_property')} - 0 - - - ${property::is_dynamic('My_property')} - 0 - - - ${property::is_readonly('My_property')} - 0 - - - ${string::equal(platform::is-unix(), platform::is-windows())} - False - 1 - - - ${version::parse('1.2.3.4')} - 1.2.3.4 - 1 - - - ${version::to-string('1.2.3.4')} - 1.2.3.4 - 1 - - - ${version::get-major('1.2.3.4')} - 1 - 1 - - - ${version::get-minor('1.2.3.4')} - 2 - 1 - - - ${version::get-build('1.2.3.4')} - 3 - 1 - - - ${version::get-revision('1.2.3.4')} - 4 - 1 - - - ${project::get-base-directory()} - 1 - - - ${project::get-buildfile-path()} - 1 - - - ${project::get-buildfile-uri()} - 1 - - - ${project::get-default-target()} - 1 - - - ${project::get-name()} - 1 - - - - path::change-extension('1.txt', '.exe') => ${path::change-extension('1.txt', '.exe')} - path::change-extension('1.txt', '.exe') => 1.exe - 1 - - - path::combine('C:\', '\Windows') => ${path::combine('C:\', '\Windows')} - path::combine('C:\', '\Windows') => C:\Windows - 1 - - - path::combine('/tmp/', '/file') => ${path::combine('/tmp/', '/file')} - path::combine('/tmp/', '/file') => /tmp/file - 1 - - - path::get-directory-name('C:\Windows\System32\cmd.exe') => ${path::get-directory-name('C:\Windows\System32\cmd.exe')} - path::get-directory-name('C:\Windows\System32\cmd.exe') => C:\Windows\System32 - 1 - - - path::get-directory-name('/tmp/file') => ${path::get-directory-name('/tmp/file')} - path::get-directory-name('/tmp/file') => /tmp - 1 - - - get-file-name('C:\Windows\System32\cmd.exe') => ${path::get-file-name('C:\Windows\System32\cmd.exe')} - get-file-name('C:\Windows\System32\cmd.exe') => cmd.exe - 1 - - - get-file-name('/tmp/file') => ${path::get-file-name('/tmp/file')} - get-file-name('/tmp/file') => file - 1 - - - get-file-name-without-extension('1.txt') => ${path::get-file-name-without-extension('1.txt')} - get-file-name-without-extension('1.txt') => 1 - 1 - - - get-file-name-without-extension('abc.txt') => ${path::get-file-name-without-extension('abc.txt')} - get-file-name-without-extension('abc.txt') => abc - 1 - - - get-path-root('C:\Windows\System32\cmd.exe') => ${path::get-path-root('C:\Windows\System32\cmd.exe')} - get-path-root('C:\Windows\System32\cmd.exe') => C:\ - 1 - - - get-path-root('/tmp/file') => ${path::get-path-root('/tmp/file')} - get-path-root('/tmp/file') => / - 1 - - - is-path-rooted(get-temp-file-name()) => ${path::is-path-rooted(path::get-temp-file-name())} - is-path-rooted(get-temp-file-name()) => True - 1 - - - is-path-rooted(get-temp-path()) => ${path::is-path-rooted(path::get-temp-path())} - is-path-rooted(get-temp-path()) => True - 1 - - - has-extension('abc.txt') => ${path::has-extension('abc.txt')} - has-extension('abc.txt') => True - 1 - - - has-extension('abc') => ${path::has-extension('abc')} - has-extension('abc') => False - 1 - - - is-path-rooted('abc') => ${path::is-path-rooted('abc')} - is-path-rooted('abc') => False - 1 - - - is-path-rooted('C:\') => ${path::is-path-rooted('C:\')} - is-path-rooted('C:\') => True - 1 - - - is-path-rooted('/') => ${path::is-path-rooted('/')} - is-path-rooted('/') => True - 1 - - - less('1', string::get-length(get-full-path('.'))) => ${math::less('1', string::get-length(path::get-full-path('.')))} - less('1', string::get-length(get-full-path('.'))) => True - 1 - - - get-dos-path('C:\Program Files\Windows Defender Advanced Threat Protection') => ${cygpath::get-dos-path('C:\Program Files\Windows Defender Advanced Threat Protection')} - get-dos-path('C:\Program Files\Windows Defender Advanced Threat Protection') => C:\PROGRA~1\WIF4A9~1 - 1 - - - get-dos-path('\') => ${cygpath::get-dos-path('\')} - get-dos-path('\') => - 0 - - - get-unix-path('C:\Windows\System32') => ${cygpath::get-unix-path('C:\Windows\System32')} - get-unix-path('C:\Windows\System32') => C:/Windows/System32 - 1 - - - get-unix-path('/usr/lib/') => ${cygpath::get-unix-path('/usr/lib/')} - get-unix-path('/usr/lib/') => /usr/lib/ - 1 - - - get-windows-path('C:\Windows\System32') => ${cygpath::get-windows-path('C:\Windows\System32')} - get-windows-path('C:\Windows\System32') => C:\Windows\System32 - 1 - - - get-windows-path('/usr/lib/') => ${cygpath::get-windows-path('/usr/lib/')} - get-windows-path('/usr/lib/') => \usr\lib\ - 1 - - - empty(get-directory-name(get-temp-path())) -> ${string::empty(path::get-directory-name(path::get-temp-path()))} - empty(get-directory-name(get-temp-path())) -> False - 1 - - - empty(current-directory()) => ${string::empty(program::current-directory())} - empty(current-directory()) => False - 1 - - - parse('True') => ${bool::parse('True')} - parse('True') => True - 1 - - - parse('False') => ${bool::parse('False')} - parse('False') => False - 1 - - - to-string('True') => ${bool::to-string('True')} - to-string('True') => True - 1 - - - to-string('False') => ${bool::to-string('False')} - to-string('False') => False - 1 - - - parse('0.5') => ${string::substring(double::parse('0.5'), '0', '3')} - parse('0.5') => 0.5 - 1 - - - to-string('0.5') => ${string::substring(double::to-string('0.5'), '0', '3')} - to-string('0.5') => 0.5 - 1 - - - parse('2') => ${int::parse('2')} - parse('2') => 2 - 1 - - - to-string('2') => ${int::to-string('2')} - to-string('2') => 2 - 1 - - - parse('2147483647') => ${long::parse('2147483647')} - parse('2147483647') => 2147483647 - 1 - - - to-string('2147483647') => ${long::to-string('2147483647')} - to-string('2147483647') => 2147483647 - 1 - - - parse('9223372036854775807') => ${int64::parse('9223372036854775807')} - parse('9223372036854775807') => 9223372036854775807 - 1 - - - to-string('9223372036854775807') => ${int64::to-string('9223372036854775807')} - to-string('9223372036854775807') => 9223372036854775807 - 1 - - - truncate(abs('-1')) -> ${math::truncate(math::abs('-1'))}, truncate(abs('1')) -> ${math::truncate(math::abs('1'))} - truncate(abs('-1')) -> 1, truncate(abs('1')) -> 1 - 1 - - - truncate(ceiling('-1.75')) -> ${math::truncate(math::ceiling('-1.75'))}, - truncate(ceiling('-1.5')) -> ${math::truncate(math::ceiling('-1.5'))}, - truncate(ceiling('-1.25')) -> ${math::truncate(math::ceiling('-1.25'))}, - truncate(ceiling('-1')) -> ${math::truncate(math::ceiling('-1'))}, - truncate(ceiling('-0.75')) -> ${math::truncate(math::ceiling('-0.75'))}, - truncate(ceiling('-0.5')) -> ${math::truncate(math::ceiling('-0.5'))}, - truncate(ceiling('-0.25')) -> ${math::truncate(math::ceiling('-0.25'))}, - truncate(ceiling('0')) -> ${math::truncate(math::ceiling('0'))}, - truncate(ceiling('0.25')) -> ${math::truncate(math::ceiling('0.25'))}, - truncate(ceiling('0.5')) -> ${math::truncate(math::ceiling('0.5'))}, - truncate(ceiling('0.75')) -> ${math::truncate(math::ceiling('0.75'))}, - truncate(ceiling('1')) -> ${math::truncate(math::ceiling('1'))}, - truncate(ceiling('1.25')) -> ${math::truncate(math::ceiling('1.25'))}, - truncate(ceiling('1.5')) -> ${math::truncate(math::ceiling('1.5'))}, - truncate(ceiling('1.75')) -> ${math::truncate(math::ceiling('1.75'))} - truncate(ceiling('-1.75')) -> -1, - truncate(ceiling('-1.5')) -> -1, - truncate(ceiling('-1.25')) -> -1, - truncate(ceiling('-1')) -> -1, - truncate(ceiling('-0.75')) -> 0, - truncate(ceiling('-0.5')) -> 0, - truncate(ceiling('-0.25')) -> 0, - truncate(ceiling('0')) -> 0, - truncate(ceiling('0.25')) -> 1, - truncate(ceiling('0.5')) -> 1, - truncate(ceiling('0.75')) -> 1, - truncate(ceiling('1')) -> 1, - truncate(ceiling('1.25')) -> 2, - truncate(ceiling('1.5')) -> 2, - truncate(ceiling('1.75')) -> 2 - 1 - - - truncate(floor('-1.75')) -> ${math::truncate(math::floor('-1.75'))}, - truncate(floor('-1.5')) -> ${math::truncate(math::floor('-1.5'))}, - truncate(floor('-1.25')) -> ${math::truncate(math::floor('-1.25'))}, - truncate(floor('-1')) -> ${math::truncate(math::floor('-1'))}, - truncate(floor('-0.75')) -> ${math::truncate(math::floor('-0.75'))}, - truncate(floor('-0.5')) -> ${math::truncate(math::floor('-0.5'))}, - truncate(floor('-0.25')) -> ${math::truncate(math::floor('-0.25'))}, - truncate(floor('0')) -> ${math::truncate(math::floor('0'))}, - truncate(floor('0.25')) -> ${math::truncate(math::floor('0.25'))}, - truncate(floor('0.5')) -> ${math::truncate(math::floor('0.5'))}, - truncate(floor('0.75')) -> ${math::truncate(math::floor('0.75'))}, - truncate(floor('1')) -> ${math::truncate(math::floor('1'))}, - truncate(floor('1.25')) -> ${math::truncate(math::floor('1.25'))}, - truncate(floor('1.5')) -> ${math::truncate(math::floor('1.5'))}, - truncate(floor('1.75')) -> ${math::truncate(math::floor('1.75'))} - truncate(floor('-1.75')) -> -2, - truncate(floor('-1.5')) -> -2, - truncate(floor('-1.25')) -> -2, - truncate(floor('-1')) -> -1, - truncate(floor('-0.75')) -> -1, - truncate(floor('-0.5')) -> -1, - truncate(floor('-0.25')) -> -1, - truncate(floor('0')) -> 0, - truncate(floor('0.25')) -> 0, - truncate(floor('0.5')) -> 0, - truncate(floor('0.75')) -> 0, - truncate(floor('1')) -> 1, - truncate(floor('1.25')) -> 1, - truncate(floor('1.5')) -> 1, - truncate(floor('1.75')) -> 1 - 1 - - - truncate(round('-1.75')) -> ${math::truncate(math::round('-1.75'))}, - truncate(round('-1.5')) -> ${math::truncate(math::round('-1.5'))}, - truncate(round('-1.25')) -> ${math::truncate(math::round('-1.25'))}, - truncate(round('-1')) -> ${math::truncate(math::round('-1'))}, - truncate(round('-0.75')) -> ${math::truncate(math::round('-0.75'))}, - truncate(round('-0.5')) -> ${math::truncate(math::round('-0.5'))}, - truncate(round('-0.25')) -> ${math::truncate(math::round('-0.25'))}, - truncate(round('0')) -> ${math::truncate(math::round('0'))}, - truncate(round('0.25')) -> ${math::truncate(math::round('0.25'))}, - truncate(round('0.5')) -> ${math::truncate(math::round('0.5'))}, - truncate(round('0.75')) -> ${math::truncate(math::round('0.75'))}, - truncate(round('1')) -> ${math::truncate(math::round('1'))}, - truncate(round('1.25')) -> ${math::truncate(math::round('1.25'))}, - truncate(round('1.5')) -> ${math::truncate(math::round('1.5'))}, - truncate(round('1.75')) -> ${math::truncate(math::round('1.75'))} - truncate(round('-1.75')) -> -2, - truncate(round('-1.5')) -> -2, - truncate(round('-1.25')) -> -1, - truncate(round('-1')) -> -1, - truncate(round('-0.75')) -> -1, - truncate(round('-0.5')) -> 0, - truncate(round('-0.25')) -> 0, - truncate(round('0')) -> 0, - truncate(round('0.25')) -> 0, - truncate(round('0.5')) -> 0, - truncate(round('0.75')) -> 1, - truncate(round('1')) -> 1, - truncate(round('1.25')) -> 1, - truncate(round('1.5')) -> 2, - truncate(round('1.75')) -> 2 - 1 - - - truncate(multiplication(100000, acos(-1))) -> ${math::truncate(math::multiplication('100000', math::acos('-1')))}, - truncate(multiplication(100000, acos(-0.75))) -> ${math::truncate(math::multiplication('100000', math::acos('-0.75')))}, - truncate(multiplication(100000, acos(-0.5))) -> ${math::truncate(math::multiplication('100000', math::acos('-0.5')))}, - truncate(multiplication(100000, acos(-0.25))) -> ${math::truncate(math::multiplication('100000', math::acos('-0.25')))}, - truncate(multiplication(100000, acos(0))) -> ${math::truncate(math::multiplication('100000', math::acos('0')))}, - truncate(multiplication(100000, acos(0.25))) -> ${math::truncate(math::multiplication('100000', math::acos('0.25')))}, - truncate(multiplication(100000, acos(0.5))) -> ${math::truncate(math::multiplication('100000', math::acos('0.5')))}, - truncate(multiplication(100000, acos(0.75))) -> ${math::truncate(math::multiplication('100000', math::acos('0.75')))}, - truncate(multiplication(100000, acos(1))) -> ${math::truncate(math::multiplication('100000', math::acos('1')))} - truncate(multiplication(100000, acos(-1))) -> 314159, - truncate(multiplication(100000, acos(-0.75))) -> 241885, - truncate(multiplication(100000, acos(-0.5))) -> 209439, - truncate(multiplication(100000, acos(-0.25))) -> 182347, - truncate(multiplication(100000, acos(0))) -> 157079, - truncate(multiplication(100000, acos(0.25))) -> 131811, - truncate(multiplication(100000, acos(0.5))) -> 104719, - truncate(multiplication(100000, acos(0.75))) -> 72273, - truncate(multiplication(100000, acos(1))) -> 0 - 1 - - - truncate(multiplication(100000, asin(-1))) -> ${math::truncate(math::multiplication('100000', math::asin('-1')))}, - truncate(multiplication(100000, asin(-0.75))) -> ${math::truncate(math::multiplication('100000', math::asin('-0.75')))}, - truncate(multiplication(100000, asin(-0.5))) -> ${math::truncate(math::multiplication('100000', math::asin('-0.5')))}, - truncate(multiplication(100000, asin(-0.25))) -> ${math::truncate(math::multiplication('100000', math::asin('-0.25')))}, - truncate(multiplication(100000, asin(0))) -> ${math::truncate(math::multiplication('100000', math::asin('0')))}, - truncate(multiplication(100000, asin(0.25))) -> ${math::truncate(math::multiplication('100000', math::asin('0.25')))}, - truncate(multiplication(100000, asin(0.5))) -> ${math::truncate(math::multiplication('100000', math::asin('0.5')))}, - truncate(multiplication(100000, asin(0.75))) -> ${math::truncate(math::multiplication('100000', math::asin('0.75')))}, - truncate(multiplication(100000, asin(1))) -> ${math::truncate(math::multiplication('100000', math::asin('1')))} - truncate(multiplication(100000, asin(-1))) -> -157079, - truncate(multiplication(100000, asin(-0.75))) -> -84806, - truncate(multiplication(100000, asin(-0.5))) -> -52359, - truncate(multiplication(100000, asin(-0.25))) -> -25268, - truncate(multiplication(100000, asin(0))) -> 0, - truncate(multiplication(100000, asin(0.25))) -> 25268, - truncate(multiplication(100000, asin(0.5))) -> 52359, - truncate(multiplication(100000, asin(0.75))) -> 84806, - truncate(multiplication(100000, asin(1))) -> 157079 - 1 - - - truncate(multiplication(100000, atan(-1))) -> ${math::truncate(math::multiplication('100000', math::atan('-1')))}, - truncate(multiplication(100000, atan(-0.75))) -> ${math::truncate(math::multiplication('100000', math::atan('-0.75')))}, - truncate(multiplication(100000, atan(-0.5))) -> ${math::truncate(math::multiplication('100000', math::atan('-0.5')))}, - truncate(multiplication(100000, atan(-0.25))) -> ${math::truncate(math::multiplication('100000', math::atan('-0.25')))}, - truncate(multiplication(100000, atan(0))) -> ${math::truncate(math::multiplication('100000', math::atan('0')))}, - truncate(multiplication(100000, atan(0.25))) -> ${math::truncate(math::multiplication('100000', math::atan('0.25')))}, - truncate(multiplication(100000, atan(0.5))) -> ${math::truncate(math::multiplication('100000', math::atan('0.5')))}, - truncate(multiplication(100000, atan(0.75))) -> ${math::truncate(math::multiplication('100000', math::atan('0.75')))}, - truncate(multiplication(100000, atan(1))) -> ${math::truncate(math::multiplication('100000', math::atan('1')))} - truncate(multiplication(100000, atan(-1))) -> -78539, - truncate(multiplication(100000, atan(-0.75))) -> -64350, - truncate(multiplication(100000, atan(-0.5))) -> -46364, - truncate(multiplication(100000, atan(-0.25))) -> -24497, - truncate(multiplication(100000, atan(0))) -> 0, - truncate(multiplication(100000, atan(0.25))) -> 24497, - truncate(multiplication(100000, atan(0.5))) -> 46364, - truncate(multiplication(100000, atan(0.75))) -> 64350, - truncate(multiplication(100000, atan(1))) -> 78539 - 1 - - - truncate(multiplication(100000, atan2(0.5, -1))) -> ${math::truncate(math::multiplication('100000', math::atan2('0.5', '-1')))}, - truncate(multiplication(100000, atan2(0.5, -0.75))) -> ${math::truncate(math::multiplication('100000', math::atan2('0.5', '-0.75')))}, - truncate(multiplication(100000, atan2(0.5, -0.5))) -> ${math::truncate(math::multiplication('100000', math::atan2('0.5', '-0.5')))}, - truncate(multiplication(100000, atan2(0.5, -0.25))) -> ${math::truncate(math::multiplication('100000', math::atan2('0.5', '-0.25')))}, - truncate(multiplication(100000, atan2(0.5, 0))) -> ${math::truncate(math::multiplication('100000', math::atan2('0.5', '0')))}, - truncate(multiplication(100000, atan2(0.5, 0.25))) -> ${math::truncate(math::multiplication('100000', math::atan2('0.5', '0.25')))}, - truncate(multiplication(100000, atan2(0.5, 0.5))) -> ${math::truncate(math::multiplication('100000', math::atan2('0.5', '0.5')))}, - truncate(multiplication(100000, atan2(0.5, 0.75))) -> ${math::truncate(math::multiplication('100000', math::atan2('0.5', '0.75')))}, - truncate(multiplication(100000, atan2(0.5, 1))) -> ${math::truncate(math::multiplication('100000', math::atan2('0.5', '1')))} - truncate(multiplication(100000, atan2(0.5, -1))) -> -110714, - truncate(multiplication(100000, atan2(0.5, -0.75))) -> -98279, - truncate(multiplication(100000, atan2(0.5, -0.5))) -> -78539, - truncate(multiplication(100000, atan2(0.5, -0.25))) -> -46364, - truncate(multiplication(100000, atan2(0.5, 0))) -> 0, - truncate(multiplication(100000, atan2(0.5, 0.25))) -> 46364, - truncate(multiplication(100000, atan2(0.5, 0.5))) -> 78539, - truncate(multiplication(100000, atan2(0.5, 0.75))) -> 98279, - truncate(multiplication(100000, atan2(0.5, 1))) -> 110714 - 1 - - - truncate(multiplication(100000, atan2(1, -1))) -> ${math::truncate(math::multiplication('100000', math::atan2('1', '-1')))}, - truncate(multiplication(100000, atan2(1, -0.75))) -> ${math::truncate(math::multiplication('100000', math::atan2('1', '-0.75')))}, - truncate(multiplication(100000, atan2(1, -0.5))) -> ${math::truncate(math::multiplication('100000', math::atan2('1', '-0.5')))}, - truncate(multiplication(100000, atan2(1, -0.25))) -> ${math::truncate(math::multiplication('100000', math::atan2('1', '-0.25')))}, - truncate(multiplication(100000, atan2(1, 0))) -> ${math::truncate(math::multiplication('100000', math::atan2('1', '0')))}, - truncate(multiplication(100000, atan2(1, 0.25))) -> ${math::truncate(math::multiplication('100000', math::atan2('1', '0.25')))}, - truncate(multiplication(100000, atan2(1, 0.5))) -> ${math::truncate(math::multiplication('100000', math::atan2('1', '0.5')))}, - truncate(multiplication(100000, atan2(1, 0.75))) -> ${math::truncate(math::multiplication('100000', math::atan2('1', '0.75')))}, - truncate(multiplication(100000, atan2(1, 1))) -> ${math::truncate(math::multiplication('100000', math::atan2('1', '1')))} - truncate(multiplication(100000, atan2(1, -1))) -> -78539, - truncate(multiplication(100000, atan2(1, -0.75))) -> -64350, - truncate(multiplication(100000, atan2(1, -0.5))) -> -46364, - truncate(multiplication(100000, atan2(1, -0.25))) -> -24497, - truncate(multiplication(100000, atan2(1, 0))) -> 0, - truncate(multiplication(100000, atan2(1, 0.25))) -> 24497, - truncate(multiplication(100000, atan2(1, 0.5))) -> 46364, - truncate(multiplication(100000, atan2(1, 0.75))) -> 64350, - truncate(multiplication(100000, atan2(1, 1))) -> 78539 - 1 - - - truncate(multiplication(100000, atan2(2, -1))) -> ${math::truncate(math::multiplication('100000', math::atan2('2', '-1')))}, - truncate(multiplication(100000, atan2(2, -0.75))) -> ${math::truncate(math::multiplication('100000', math::atan2('2', '-0.75')))}, - truncate(multiplication(100000, atan2(2, -0.5))) -> ${math::truncate(math::multiplication('100000', math::atan2('2', '-0.5')))}, - truncate(multiplication(100000, atan2(2, -0.25))) -> ${math::truncate(math::multiplication('100000', math::atan2('2', '-0.25')))}, - truncate(multiplication(100000, atan2(2, 0))) -> ${math::truncate(math::multiplication('100000', math::atan2('2', '0')))}, - truncate(multiplication(100000, atan2(2, 0.25))) -> ${math::truncate(math::multiplication('100000', math::atan2('2', '0.25')))}, - truncate(multiplication(100000, atan2(2, 0.5))) -> ${math::truncate(math::multiplication('100000', math::atan2('2', '0.5')))}, - truncate(multiplication(100000, atan2(2, 0.75))) -> ${math::truncate(math::multiplication('100000', math::atan2('2', '0.75')))}, - truncate(multiplication(100000, atan2(2, 1))) -> ${math::truncate(math::multiplication('100000', math::atan2('2', '1')))} - truncate(multiplication(100000, atan2(2, -1))) -> -46364, - truncate(multiplication(100000, atan2(2, -0.75))) -> -35877, - truncate(multiplication(100000, atan2(2, -0.5))) -> -24497, - truncate(multiplication(100000, atan2(2, -0.25))) -> -12435, - truncate(multiplication(100000, atan2(2, 0))) -> 0, - truncate(multiplication(100000, atan2(2, 0.25))) -> 12435, - truncate(multiplication(100000, atan2(2, 0.5))) -> 24497, - truncate(multiplication(100000, atan2(2, 0.75))) -> 35877, - truncate(multiplication(100000, atan2(2, 1))) -> 46364 - 1 - - - truncate(multiplication(100000, cos(-6.28318531))) -> ${math::truncate(math::multiplication('100000', math::cos('-6.28318531')))}, - truncate(multiplication(100000, cos(-5.49778714))) -> ${math::truncate(math::multiplication('100000', math::cos('-5.49778714')))}, - truncate(multiplication(100000, cos(-4.71238898))) -> ${math::truncate(math::multiplication('100000', math::cos('-4.71238898')))}, - truncate(multiplication(100000, cos(-3.92699082))) -> ${math::truncate(math::multiplication('100000', math::cos('-3.92699082')))}, - truncate(multiplication(100000, cos(-3.14159265))) -> ${math::truncate(math::multiplication('100000', math::cos('-3.14159265')))}, - truncate(multiplication(100000, cos(-2.35619449))) -> ${math::truncate(math::multiplication('100000', math::cos('-2.35619449')))}, - truncate(multiplication(100000, cos(-1.57079633))) -> ${math::truncate(math::multiplication('100000', math::cos('-1.57079633')))}, - truncate(multiplication(100000, cos(-0.78539816))) -> ${math::truncate(math::multiplication('100000', math::cos('-0.78539816')))}, - truncate(multiplication(100000, cos(0))) -> ${math::truncate(math::multiplication('100000', math::cos('0')))}, - truncate(multiplication(100000, cos(0.78539816))) -> ${math::truncate(math::multiplication('100000', math::cos('0.78539816')))}, - truncate(multiplication(100000, cos(1.57079633))) -> ${math::truncate(math::multiplication('100000', math::cos('1.57079633')))}, - truncate(multiplication(100000, cos(2.35619449))) -> ${math::truncate(math::multiplication('100000', math::cos('2.35619449')))}, - truncate(multiplication(100000, cos(3.14159265))) -> ${math::truncate(math::multiplication('100000', math::cos('3.14159265')))}, - truncate(multiplication(100000, cos(3.92699082))) -> ${math::truncate(math::multiplication('100000', math::cos('3.92699082')))}, - truncate(multiplication(100000, cos(4.71238898))) -> ${math::truncate(math::multiplication('100000', math::cos('4.71238898')))}, - truncate(multiplication(100000, cos(5.49778714))) -> ${math::truncate(math::multiplication('100000', math::cos('5.49778714')))}, - truncate(multiplication(100000, cos(6.28318531))) -> ${math::truncate(math::multiplication('100000', math::cos('6.28318531')))} - truncate(multiplication(100000, cos(-6.28318531))) -> 100000, - truncate(multiplication(100000, cos(-5.49778714))) -> 70710, - truncate(multiplication(100000, cos(-4.71238898))) -> 0, - truncate(multiplication(100000, cos(-3.92699082))) -> -70710, - truncate(multiplication(100000, cos(-3.14159265))) -> -100000, - truncate(multiplication(100000, cos(-2.35619449))) -> -70710, - truncate(multiplication(100000, cos(-1.57079633))) -> 0, - truncate(multiplication(100000, cos(-0.78539816))) -> 70710, - truncate(multiplication(100000, cos(0))) -> 100000, - truncate(multiplication(100000, cos(0.78539816))) -> 70710, - truncate(multiplication(100000, cos(1.57079633))) -> 0, - truncate(multiplication(100000, cos(2.35619449))) -> -70710, - truncate(multiplication(100000, cos(3.14159265))) -> -100000, - truncate(multiplication(100000, cos(3.92699082))) -> -70710, - truncate(multiplication(100000, cos(4.71238898))) -> 0, - truncate(multiplication(100000, cos(5.49778714))) -> 70710, - truncate(multiplication(100000, cos(6.28318531))) -> 100000 - 1 - - - truncate(cosh(-6.28318531)) -> ${math::truncate(math::cosh('-6.28318531'))}, - truncate(cosh(-5.49778714)) -> ${math::truncate(math::cosh('-5.49778714'))}, - truncate(cosh(-4.71238898)) -> ${math::truncate(math::cosh('-4.71238898'))}, - truncate(cosh(-3.92699082)) -> ${math::truncate(math::cosh('-3.92699082'))}, - truncate(cosh(-3.14159265)) -> ${math::truncate(math::cosh('-3.14159265'))}, - truncate(cosh(-2.35619449)) -> ${math::truncate(math::cosh('-2.35619449'))}, - truncate(cosh(-1.57079633)) -> ${math::truncate(math::cosh('-1.57079633'))}, - truncate(cosh(-0.78539816)) -> ${math::truncate(math::cosh('-0.78539816'))}, - truncate(cosh(0)) -> ${math::truncate(math::cosh('0'))}, - truncate(cosh(0.78539816)) -> ${math::truncate(math::cosh('0.78539816'))}, - truncate(cosh(1.57079633)) -> ${math::truncate(math::cosh('1.57079633'))}, - truncate(cosh(2.35619449)) -> ${math::truncate(math::cosh('2.35619449'))}, - truncate(cosh(3.14159265)) -> ${math::truncate(math::cosh('3.14159265'))}, - truncate(cosh(3.92699082)) -> ${math::truncate(math::cosh('3.92699082'))}, - truncate(cosh(4.71238898)) -> ${math::truncate(math::cosh('4.71238898'))}, - truncate(cosh(5.49778714)) -> ${math::truncate(math::cosh('5.49778714'))}, - truncate(cosh(6.28318531)) -> ${math::truncate(math::cosh('6.28318531'))} - truncate(cosh(-6.28318531)) -> 267, - truncate(cosh(-5.49778714)) -> 122, - truncate(cosh(-4.71238898)) -> 55, - truncate(cosh(-3.92699082)) -> 25, - truncate(cosh(-3.14159265)) -> 11, - truncate(cosh(-2.35619449)) -> 5, - truncate(cosh(-1.57079633)) -> 2, - truncate(cosh(-0.78539816)) -> 1, - truncate(cosh(0)) -> 1, - truncate(cosh(0.78539816)) -> 1, - truncate(cosh(1.57079633)) -> 2, - truncate(cosh(2.35619449)) -> 5, - truncate(cosh(3.14159265)) -> 11, - truncate(cosh(3.92699082)) -> 25, - truncate(cosh(4.71238898)) -> 55, - truncate(cosh(5.49778714)) -> 122, - truncate(cosh(6.28318531)) -> 267 - 1 - - - truncate(multiplication(100000, exp(-3))) -> ${math::truncate(math::multiplication('100000', math::exp('-3')))}, - truncate(multiplication(100000, exp(-2.75))) -> ${math::truncate(math::multiplication('100000', math::exp('-2.75')))}, - truncate(multiplication(100000, exp(-2.5))) -> ${math::truncate(math::multiplication('100000', math::exp('-2.5')))}, - truncate(multiplication(100000, exp(-2.25))) -> ${math::truncate(math::multiplication('100000', math::exp('-2.25')))}, - truncate(multiplication(100000, exp(-2))) -> ${math::truncate(math::multiplication('100000', math::exp('-2')))}, - truncate(multiplication(100000, exp(-1.75))) -> ${math::truncate(math::multiplication('100000', math::exp('-1.75')))}, - truncate(multiplication(100000, exp(-1.5))) -> ${math::truncate(math::multiplication('100000', math::exp('-1.5')))}, - truncate(multiplication(100000, exp(-1.25))) -> ${math::truncate(math::multiplication('100000', math::exp('-1.25')))}, - truncate(multiplication(100000, exp(-1))) -> ${math::truncate(math::multiplication('100000', math::exp('-1')))}, - truncate(multiplication(100000, exp(-0.75))) -> ${math::truncate(math::multiplication('100000', math::exp('-0.75')))}, - truncate(multiplication(100000, exp(-0.5))) -> ${math::truncate(math::multiplication('100000', math::exp('-0.5')))}, - truncate(multiplication(100000, exp(-0.25))) -> ${math::truncate(math::multiplication('100000', math::exp('-0.25')))}, - truncate(multiplication(100000, exp(0))) -> ${math::truncate(math::multiplication('100000', math::exp('0')))}, - truncate(multiplication(100000, exp(0.25))) -> ${math::truncate(math::multiplication('100000', math::exp('0.25')))}, - truncate(multiplication(100000, exp(0.5))) -> ${math::truncate(math::multiplication('100000', math::exp('0.5')))}, - truncate(multiplication(100000, exp(0.75))) -> ${math::truncate(math::multiplication('100000', math::exp('0.75')))}, - truncate(multiplication(100000, exp(1))) -> ${math::truncate(math::multiplication('100000', math::exp('1')))}, - truncate(multiplication(100000, exp(1.25))) -> ${math::truncate(math::multiplication('100000', math::exp('1.25')))}, - truncate(multiplication(100000, exp(1.5))) -> ${math::truncate(math::multiplication('100000', math::exp('1.5')))}, - truncate(multiplication(100000, exp(1.75))) -> ${math::truncate(math::multiplication('100000', math::exp('1.75')))}, - truncate(multiplication(100000, exp(2))) -> ${math::truncate(math::multiplication('100000', math::exp('2')))}, - truncate(multiplication(100000, exp(2.25))) -> ${math::truncate(math::multiplication('100000', math::exp('2.25')))}, - truncate(multiplication(100000, exp(2.5))) -> ${math::truncate(math::multiplication('100000', math::exp('2.5')))}, - truncate(multiplication(100000, exp(2.75))) -> ${math::truncate(math::multiplication('100000', math::exp('2.75')))}, - truncate(multiplication(100000, exp(3))) -> ${math::truncate(math::multiplication('100000', math::exp('3')))} - truncate(multiplication(100000, exp(-3))) -> 4978, - truncate(multiplication(100000, exp(-2.75))) -> 6392, - truncate(multiplication(100000, exp(-2.5))) -> 8208, - truncate(multiplication(100000, exp(-2.25))) -> 10539, - truncate(multiplication(100000, exp(-2))) -> 13533, - truncate(multiplication(100000, exp(-1.75))) -> 17377, - truncate(multiplication(100000, exp(-1.5))) -> 22313, - truncate(multiplication(100000, exp(-1.25))) -> 28650, - truncate(multiplication(100000, exp(-1))) -> 36787, - truncate(multiplication(100000, exp(-0.75))) -> 47236, - truncate(multiplication(100000, exp(-0.5))) -> 60653, - truncate(multiplication(100000, exp(-0.25))) -> 77880, - truncate(multiplication(100000, exp(0))) -> 100000, - truncate(multiplication(100000, exp(0.25))) -> 128402, - truncate(multiplication(100000, exp(0.5))) -> 164872, - truncate(multiplication(100000, exp(0.75))) -> 211700, - truncate(multiplication(100000, exp(1))) -> 271828, - truncate(multiplication(100000, exp(1.25))) -> 349034, - truncate(multiplication(100000, exp(1.5))) -> 448168, - truncate(multiplication(100000, exp(1.75))) -> 575460, - truncate(multiplication(100000, exp(2))) -> 738905, - truncate(multiplication(100000, exp(2.25))) -> 948773, - truncate(multiplication(100000, exp(2.5))) -> 1218249, - truncate(multiplication(100000, exp(2.75))) -> 1564263, - truncate(multiplication(100000, exp(3))) -> 2008553 - 1 - - - truncate(multiplication(100000, log(0.25))) -> ${math::truncate(math::multiplication('100000', math::log('0.25')))}, - truncate(multiplication(100000, log(0.5))) -> ${math::truncate(math::multiplication('100000', math::log('0.5')))}, - truncate(multiplication(100000, log(0.75))) -> ${math::truncate(math::multiplication('100000', math::log('0.75')))}, - truncate(multiplication(100000, log(1))) -> ${math::truncate(math::multiplication('100000', math::log('1')))}, - truncate(multiplication(100000, log(1.25))) -> ${math::truncate(math::multiplication('100000', math::log('1.25')))}, - truncate(multiplication(100000, log(1.5))) -> ${math::truncate(math::multiplication('100000', math::log('1.5')))}, - truncate(multiplication(100000, log(1.75))) -> ${math::truncate(math::multiplication('100000', math::log('1.75')))}, - truncate(multiplication(100000, log(2))) -> ${math::truncate(math::multiplication('100000', math::log('2')))}, - truncate(multiplication(100000, log(2.25))) -> ${math::truncate(math::multiplication('100000', math::log('2.25')))}, - truncate(multiplication(100000, log(2.5))) -> ${math::truncate(math::multiplication('100000', math::log('2.5')))}, - truncate(multiplication(100000, log(2.75))) -> ${math::truncate(math::multiplication('100000', math::log('2.75')))}, - truncate(multiplication(100000, log(3))) -> ${math::truncate(math::multiplication('100000', math::log('3')))}, - truncate(multiplication(100000, log(3.25))) -> ${math::truncate(math::multiplication('100000', math::log('3.25')))}, - truncate(multiplication(100000, log(3.5))) -> ${math::truncate(math::multiplication('100000', math::log('3.5')))}, - truncate(multiplication(100000, log(3.75))) -> ${math::truncate(math::multiplication('100000', math::log('3.75')))}, - truncate(multiplication(100000, log(4))) -> ${math::truncate(math::multiplication('100000', math::log('4')))} - truncate(multiplication(100000, log(0.25))) -> -138629, - truncate(multiplication(100000, log(0.5))) -> -69314, - truncate(multiplication(100000, log(0.75))) -> -28768, - truncate(multiplication(100000, log(1))) -> 0, - truncate(multiplication(100000, log(1.25))) -> 22314, - truncate(multiplication(100000, log(1.5))) -> 40546, - truncate(multiplication(100000, log(1.75))) -> 55961, - truncate(multiplication(100000, log(2))) -> 69314, - truncate(multiplication(100000, log(2.25))) -> 81093, - truncate(multiplication(100000, log(2.5))) -> 91629, - truncate(multiplication(100000, log(2.75))) -> 101160, - truncate(multiplication(100000, log(3))) -> 109861, - truncate(multiplication(100000, log(3.25))) -> 117865, - truncate(multiplication(100000, log(3.5))) -> 125276, - truncate(multiplication(100000, log(3.75))) -> 132175, - truncate(multiplication(100000, log(4))) -> 138629 - 1 - - - truncate(multiplication(100000, log10(0.25))) -> ${math::truncate(math::multiplication('100000', math::log10('0.25')))}, - truncate(multiplication(100000, log10(0.5))) -> ${math::truncate(math::multiplication('100000', math::log10('0.5')))}, - truncate(multiplication(100000, log10(0.75))) -> ${math::truncate(math::multiplication('100000', math::log10('0.75')))}, - truncate(multiplication(100000, log10(1))) -> ${math::truncate(math::multiplication('100000', math::log10('1')))}, - truncate(multiplication(100000, log10(1.25))) -> ${math::truncate(math::multiplication('100000', math::log10('1.25')))}, - truncate(multiplication(100000, log10(1.5))) -> ${math::truncate(math::multiplication('100000', math::log10('1.5')))}, - truncate(multiplication(100000, log10(1.75))) -> ${math::truncate(math::multiplication('100000', math::log10('1.75')))}, - truncate(multiplication(100000, log10(2))) -> ${math::truncate(math::multiplication('100000', math::log10('2')))}, - truncate(multiplication(100000, log10(2.25))) -> ${math::truncate(math::multiplication('100000', math::log10('2.25')))}, - truncate(multiplication(100000, log10(2.5))) -> ${math::truncate(math::multiplication('100000', math::log10('2.5')))}, - truncate(multiplication(100000, log10(2.75))) -> ${math::truncate(math::multiplication('100000', math::log10('2.75')))}, - truncate(multiplication(100000, log10(3))) -> ${math::truncate(math::multiplication('100000', math::log10('3')))}, - truncate(multiplication(100000, log10(3.25))) -> ${math::truncate(math::multiplication('100000', math::log10('3.25')))}, - truncate(multiplication(100000, log10(3.5))) -> ${math::truncate(math::multiplication('100000', math::log10('3.5')))}, - truncate(multiplication(100000, log10(3.75))) -> ${math::truncate(math::multiplication('100000', math::log10('3.75')))}, - truncate(multiplication(100000, log10(4))) -> ${math::truncate(math::multiplication('100000', math::log10('4')))} - truncate(multiplication(100000, log10(0.25))) -> -60205, - truncate(multiplication(100000, log10(0.5))) -> -30102, - truncate(multiplication(100000, log10(0.75))) -> -12493, - truncate(multiplication(100000, log10(1))) -> 0, - truncate(multiplication(100000, log10(1.25))) -> 9691, - truncate(multiplication(100000, log10(1.5))) -> 17609, - truncate(multiplication(100000, log10(1.75))) -> 24303, - truncate(multiplication(100000, log10(2))) -> 30102, - truncate(multiplication(100000, log10(2.25))) -> 35218, - truncate(multiplication(100000, log10(2.5))) -> 39794, - truncate(multiplication(100000, log10(2.75))) -> 43933, - truncate(multiplication(100000, log10(3))) -> 47712, - truncate(multiplication(100000, log10(3.25))) -> 51188, - truncate(multiplication(100000, log10(3.5))) -> 54406, - truncate(multiplication(100000, log10(3.75))) -> 57403, - truncate(multiplication(100000, log10(4))) -> 60205 - 1 - - - truncate(max(-1, -2)) -> ${math::truncate(math::max('-1', '-2'))}, - truncate(min(-1, -2)) -> ${math::truncate(math::min('-1', '-2'))}, - truncate(max(1, 2)) -> ${math::truncate(math::max('1', '2'))}, - truncate(min(1, 2)) -> ${math::truncate(math::min('1', '2'))} - truncate(max(-1, -2)) -> -1, - truncate(min(-1, -2)) -> -2, - truncate(max(1, 2)) -> 2, - truncate(min(1, 2)) -> 1 - 1 - - - truncate(multiplication(10000, pow(-3, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-3', '2')))}, - truncate(multiplication(10000, pow(-2.75, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-2.75', '2')))}, - truncate(multiplication(10000, pow(-2.5, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-2.5', '2')))}, - truncate(multiplication(10000, pow(-2.25, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-2.25', '2')))}, - truncate(multiplication(10000, pow(-2, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-2', '2')))}, - truncate(multiplication(10000, pow(-1.75, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-1.75', '2')))}, - truncate(multiplication(10000, pow(-1.5, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-1.5', '2')))}, - truncate(multiplication(10000, pow(-1.25, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-1.25', '2')))}, - truncate(multiplication(10000, pow(-1, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-1', '2')))}, - truncate(multiplication(10000, pow(-0.75, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-0.75', '2')))}, - truncate(multiplication(10000, pow(-0.5, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-0.5', '2')))}, - truncate(multiplication(10000, pow(-0.25, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-0.25', '2')))}, - truncate(multiplication(10000, pow(0, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('0', '2')))}, - truncate(multiplication(10000, pow(0.25, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('0.25', '2')))}, - truncate(multiplication(10000, pow(0.5, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('0.5', '2')))}, - truncate(multiplication(10000, pow(0.75, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('0.75', '2')))}, - truncate(multiplication(10000, pow(1, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('1', '2')))}, - truncate(multiplication(10000, pow(1.25, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('1.25', '2')))}, - truncate(multiplication(10000, pow(1.5, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('1.5', '2')))}, - truncate(multiplication(10000, pow(1.75, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('1.75', '2')))}, - truncate(multiplication(10000, pow(2, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('2', '2')))}, - truncate(multiplication(10000, pow(2.25, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('2.25', '2')))}, - truncate(multiplication(10000, pow(2.5, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('2.5', '2')))}, - truncate(multiplication(10000, pow(2.75, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('2.75', '2')))}, - truncate(multiplication(10000, pow(3, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('3', '2')))} - truncate(multiplication(10000, pow(-3, 2))) -> 90000, - truncate(multiplication(10000, pow(-2.75, 2))) -> 75625, - truncate(multiplication(10000, pow(-2.5, 2))) -> 62500, - truncate(multiplication(10000, pow(-2.25, 2))) -> 50625, - truncate(multiplication(10000, pow(-2, 2))) -> 40000, - truncate(multiplication(10000, pow(-1.75, 2))) -> 30625, - truncate(multiplication(10000, pow(-1.5, 2))) -> 22500, - truncate(multiplication(10000, pow(-1.25, 2))) -> 15625, - truncate(multiplication(10000, pow(-1, 2))) -> 10000, - truncate(multiplication(10000, pow(-0.75, 2))) -> 5625, - truncate(multiplication(10000, pow(-0.5, 2))) -> 2500, - truncate(multiplication(10000, pow(-0.25, 2))) -> 625, - truncate(multiplication(10000, pow(0, 2))) -> 0, - truncate(multiplication(10000, pow(0.25, 2))) -> 625, - truncate(multiplication(10000, pow(0.5, 2))) -> 2500, - truncate(multiplication(10000, pow(0.75, 2))) -> 5625, - truncate(multiplication(10000, pow(1, 2))) -> 10000, - truncate(multiplication(10000, pow(1.25, 2))) -> 15625, - truncate(multiplication(10000, pow(1.5, 2))) -> 22500, - truncate(multiplication(10000, pow(1.75, 2))) -> 30625, - truncate(multiplication(10000, pow(2, 2))) -> 40000, - truncate(multiplication(10000, pow(2.25, 2))) -> 50625, - truncate(multiplication(10000, pow(2.5, 2))) -> 62500, - truncate(multiplication(10000, pow(2.75, 2))) -> 75625, - truncate(multiplication(10000, pow(3, 2))) -> 90000 - 1 - - - ${math::sign('-2')} ${math::sign('-1.5')} ${math::sign('-1')} ${math::sign('-0.5')} - ${math::sign('0')} ${math::sign('0.5')} ${math::sign('1')} ${math::sign('1.5')} ${math::sign('2')} - -1 -1 -1 -1 1 1 1 1 1 - 1 - - - truncate(multiplication(100000, sin(-6.28318531))) -> ${math::truncate(math::multiplication('100000', math::sin('-6.28318531')))}, - truncate(multiplication(100000, sin(-5.49778714))) -> ${math::truncate(math::multiplication('100000', math::sin('-5.49778714')))}, - truncate(multiplication(100000, sin(-4.71238898))) -> ${math::truncate(math::multiplication('100000', math::sin('-4.71238898')))}, - truncate(multiplication(100000, sin(-3.92699082))) -> ${math::truncate(math::multiplication('100000', math::sin('-3.92699082')))}, - truncate(multiplication(100000, sin(-3.14159265))) -> ${math::truncate(math::multiplication('100000', math::sin('-3.14159265')))}, - truncate(multiplication(100000, sin(-2.35619449))) -> ${math::truncate(math::multiplication('100000', math::sin('-2.35619449')))}, - truncate(multiplication(100000, sin(-1.57079633))) -> ${math::truncate(math::multiplication('100000', math::sin('-1.57079633')))}, - truncate(multiplication(100000, sin(-0.78539816))) -> ${math::truncate(math::multiplication('100000', math::sin('-0.78539816')))}, - truncate(multiplication(100000, sin(0))) -> ${math::truncate(math::multiplication('100000', math::sin('0')))}, - truncate(multiplication(100000, sin(0.78539816))) -> ${math::truncate(math::multiplication('100000', math::sin('0.78539816')))}, - truncate(multiplication(100000, sin(1.57079633))) -> ${math::truncate(math::multiplication('100000', math::sin('1.57079633')))}, - truncate(multiplication(100000, sin(2.35619449))) -> ${math::truncate(math::multiplication('100000', math::sin('2.35619449')))}, - truncate(multiplication(100000, sin(3.14159265))) -> ${math::truncate(math::multiplication('100000', math::sin('3.14159265')))}, - truncate(multiplication(100000, sin(3.92699082))) -> ${math::truncate(math::multiplication('100000', math::sin('3.92699082')))}, - truncate(multiplication(100000, sin(4.71238898))) -> ${math::truncate(math::multiplication('100000', math::sin('4.71238898')))}, - truncate(multiplication(100000, sin(5.49778714))) -> ${math::truncate(math::multiplication('100000', math::sin('5.49778714')))}, - truncate(multiplication(100000, sin(6.28318531))) -> ${math::truncate(math::multiplication('100000', math::sin('6.28318531')))} - truncate(multiplication(100000, sin(-6.28318531))) -> 0, - truncate(multiplication(100000, sin(-5.49778714))) -> 70710, - truncate(multiplication(100000, sin(-4.71238898))) -> 100000, - truncate(multiplication(100000, sin(-3.92699082))) -> 70710, - truncate(multiplication(100000, sin(-3.14159265))) -> 0, - truncate(multiplication(100000, sin(-2.35619449))) -> -70710, - truncate(multiplication(100000, sin(-1.57079633))) -> -100000, - truncate(multiplication(100000, sin(-0.78539816))) -> -70710, - truncate(multiplication(100000, sin(0))) -> 0, - truncate(multiplication(100000, sin(0.78539816))) -> 70710, - truncate(multiplication(100000, sin(1.57079633))) -> 100000, - truncate(multiplication(100000, sin(2.35619449))) -> 70710, - truncate(multiplication(100000, sin(3.14159265))) -> 0, - truncate(multiplication(100000, sin(3.92699082))) -> -70710, - truncate(multiplication(100000, sin(4.71238898))) -> -100000, - truncate(multiplication(100000, sin(5.49778714))) -> -70710, - truncate(multiplication(100000, sin(6.28318531))) -> 0 - 1 - - - truncate(sinh(-6.28318531)) -> ${math::truncate(math::sinh('-6.28318531'))}, - truncate(sinh(-5.49778714)) -> ${math::truncate(math::sinh('-5.49778714'))}, - truncate(sinh(-4.71238898)) -> ${math::truncate(math::sinh('-4.71238898'))}, - truncate(sinh(-3.92699082)) -> ${math::truncate(math::sinh('-3.92699082'))}, - truncate(sinh(-3.14159265)) -> ${math::truncate(math::sinh('-3.14159265'))}, - truncate(sinh(-2.35619449)) -> ${math::truncate(math::sinh('-2.35619449'))}, - truncate(sinh(-1.57079633)) -> ${math::truncate(math::sinh('-1.57079633'))}, - truncate(sinh(-0.78539816)) -> ${math::truncate(math::sinh('-0.78539816'))}, - truncate(sinh(0)) -> ${math::truncate(math::sinh('0'))}, - truncate(sinh(0.78539816)) -> ${math::truncate(math::sinh('0.78539816'))}, - truncate(sinh(1.57079633)) -> ${math::truncate(math::sinh('1.57079633'))}, - truncate(sinh(2.35619449)) -> ${math::truncate(math::sinh('2.35619449'))}, - truncate(sinh(3.14159265)) -> ${math::truncate(math::sinh('3.14159265'))}, - truncate(sinh(3.92699082)) -> ${math::truncate(math::sinh('3.92699082'))}, - truncate(sinh(4.71238898)) -> ${math::truncate(math::sinh('4.71238898'))}, - truncate(sinh(5.49778714)) -> ${math::truncate(math::sinh('5.49778714'))}, - truncate(sinh(6.28318531)) -> ${math::truncate(math::sinh('6.28318531'))} - truncate(sinh(-6.28318531)) -> -267, - truncate(sinh(-5.49778714)) -> -122, - truncate(sinh(-4.71238898)) -> -55, - truncate(sinh(-3.92699082)) -> -25, - truncate(sinh(-3.14159265)) -> -11, - truncate(sinh(-2.35619449)) -> -5, - truncate(sinh(-1.57079633)) -> -2, - truncate(sinh(-0.78539816)) -> 0, - truncate(sinh(0)) -> 0, - truncate(sinh(0.78539816)) -> 0, - truncate(sinh(1.57079633)) -> 2, - truncate(sinh(2.35619449)) -> 5, - truncate(sinh(3.14159265)) -> 11, - truncate(sinh(3.92699082)) -> 25, - truncate(sinh(4.71238898)) -> 55, - truncate(sinh(5.49778714)) -> 122, - truncate(sinh(6.28318531)) -> 267 - 1 - - - truncate(multiplication(10, sqrt(0))) -> ${math::truncate(math::multiplication('10', math::sqrt('0')))}, - truncate(multiplication(10, sqrt(0.25))) -> ${math::truncate(math::multiplication('10', math::sqrt('0.25')))}, - truncate(multiplication(10, sqrt(1))) -> ${math::truncate(math::multiplication('10', math::sqrt('1')))}, - truncate(multiplication(10, sqrt(2.25))) -> ${math::truncate(math::multiplication('10', math::sqrt('2.25')))}, - truncate(multiplication(10, sqrt(4))) -> ${math::truncate(math::multiplication('10', math::sqrt('4')))} - truncate(multiplication(10, sqrt(0))) -> 0, - truncate(multiplication(10, sqrt(0.25))) -> 5, - truncate(multiplication(10, sqrt(1))) -> 10, - truncate(multiplication(10, sqrt(2.25))) -> 15, - truncate(multiplication(10, sqrt(4))) -> 20 - 1 - - - near(tan(0), 0) -> ${math::near(math::tan('0'), '0')}, - near(tan(PI / 6), 0.577350) -> ${math::near(math::tan(math::division(math::PI(), '6')), '0.577350', '0.000001')}, - near(tan(PI / 4), 1) -> ${math::near(math::tan(math::division(math::PI(), '4')), '1')}, - near(tan(PI / 3), 1.732050) -> ${math::near(math::tan(math::division(math::PI(), '3')), '1.732050', '0.000001')}, - near(tan(PI), 0) -> ${math::near(math::tan(math::PI()), '0', '0.000001')}, - near(tan(2 * PI), 0) -> ${math::near(math::tan(math::multiplication('2', math::PI())), '0', '0.000001')} - - near(tan(0), 0) -> True, - near(tan(PI / 6), 0.577350) -> True, - near(tan(PI / 4), 1) -> True, - near(tan(PI / 3), 1.732050) -> True, - near(tan(PI), 0) -> True, - near(tan(2 * PI), 0) -> True - 1 - - - truncate(multiplication(10, tanh(-5))) -> ${math::truncate(math::multiplication('10', math::tanh('-5')))}, - truncate(multiplication(10, tanh(-4))) -> ${math::truncate(math::multiplication('10', math::tanh('-4')))}, - truncate(multiplication(10, tanh(-3))) -> ${math::truncate(math::multiplication('10', math::tanh('-3')))}, - truncate(multiplication(10, tanh(-2))) -> ${math::truncate(math::multiplication('10', math::tanh('-2')))}, - truncate(multiplication(10, tanh(-1))) -> ${math::truncate(math::multiplication('10', math::tanh('-1')))}, - truncate(multiplication(10, tanh(0))) -> ${math::truncate(math::multiplication('10', math::tanh('0')))}, - truncate(multiplication(10, tanh(1))) -> ${math::truncate(math::multiplication('10', math::tanh('1')))}, - truncate(multiplication(10, tanh(2))) -> ${math::truncate(math::multiplication('10', math::tanh('2')))}, - truncate(multiplication(10, tanh(3))) -> ${math::truncate(math::multiplication('10', math::tanh('3')))}, - truncate(multiplication(10, tanh(4))) -> ${math::truncate(math::multiplication('10', math::tanh('4')))}, - truncate(multiplication(10, tanh(5))) -> ${math::truncate(math::multiplication('10', math::tanh('5')))} - truncate(multiplication(10, tanh(-5))) -> -9, - truncate(multiplication(10, tanh(-4))) -> -9, - truncate(multiplication(10, tanh(-3))) -> -9, - truncate(multiplication(10, tanh(-2))) -> -9, - truncate(multiplication(10, tanh(-1))) -> -7, - truncate(multiplication(10, tanh(0))) -> 0, - truncate(multiplication(10, tanh(1))) -> 7, - truncate(multiplication(10, tanh(2))) -> 9, - truncate(multiplication(10, tanh(3))) -> 9, - truncate(multiplication(10, tanh(4))) -> 9, - truncate(multiplication(10, tanh(5))) -> 9 - 1 - - - near(cot(PI / 6), 1.732050) -> ${math::near(math::cot(math::division(math::PI(), '6')), '1.732050', '0.000001')}, - near(cot(PI / 4), 1) -> ${math::near(math::cot(math::division(math::PI(), '4')), '1', '0.000001')}, - near(cot(PI / 3), 0.577350) -> ${math::near(math::cot(math::division(math::PI(), '3')), '0.577350', '0.000001')}, - near(cot(PI / 2), 0) -> ${math::near(math::cot(math::division(math::PI(), '2')), '0', '0.000001')}, - near(cot(3 * PI / 2), 0) -> ${math::near(math::cot(math::division(math::multiplication('3', math::PI()), '2')), '0', '0.000001')} - near(cot(PI / 6), 1.732050) -> True, - near(cot(PI / 4), 1) -> True, - near(cot(PI / 3), 0.577350) -> True, - near(cot(PI / 2), 0) -> True, - near(cot(3 * PI / 2), 0) -> True - 1 - - - truncate(multiplication(10, coth(-5))) -> ${math::truncate(math::multiplication('10', math::coth('-5')))}, - truncate(multiplication(10, coth(-4))) -> ${math::truncate(math::multiplication('10', math::coth('-4')))}, - truncate(multiplication(10, coth(-3))) -> ${math::truncate(math::multiplication('10', math::coth('-3')))}, - truncate(multiplication(10, coth(-2))) -> ${math::truncate(math::multiplication('10', math::coth('-2')))}, - truncate(multiplication(10, coth(-1))) -> ${math::truncate(math::multiplication('10', math::coth('-1')))}, - truncate(multiplication(10, coth(1))) -> ${math::truncate(math::multiplication('10', math::coth('1')))}, - truncate(multiplication(10, coth(2))) -> ${math::truncate(math::multiplication('10', math::coth('2')))}, - truncate(multiplication(10, coth(3))) -> ${math::truncate(math::multiplication('10', math::coth('3')))}, - truncate(multiplication(10, coth(4))) -> ${math::truncate(math::multiplication('10', math::coth('4')))}, - truncate(multiplication(10, coth(5))) -> ${math::truncate(math::multiplication('10', math::coth('5')))} - truncate(multiplication(10, coth(-5))) -> -10, - truncate(multiplication(10, coth(-4))) -> -10, - truncate(multiplication(10, coth(-3))) -> -10, - truncate(multiplication(10, coth(-2))) -> -10, - truncate(multiplication(10, coth(-1))) -> -13, - truncate(multiplication(10, coth(1))) -> 13, - truncate(multiplication(10, coth(2))) -> 10, - truncate(multiplication(10, coth(3))) -> 10, - truncate(multiplication(10, coth(4))) -> 10, - truncate(multiplication(10, coth(5))) -> 10 - 1 - - - truncate(-1) -> ${math::truncate('-1')}, - truncate(-1.5) -> ${math::truncate('-1.5')}, - truncate(0) -> ${math::truncate('0')}, - truncate(0.0) -> ${math::truncate('0.0')}, - truncate(1) -> ${math::truncate('1')}, - truncate(1.5) -> ${math::truncate('1.5')} - truncate(-1) -> -1, - truncate(-1.5) -> -1, - truncate(0) -> 0, - truncate(0.0) -> 0, - truncate(1) -> 1, - truncate(1.5) -> 1 - 1 - - - near(PI, 3.1415926535897931) -> ${math::near(math::PI(), '3.1415926535897931', '0.000001')}, - near(E, 2.7182818284590451) -> ${math::near(math::E(), '2.7182818284590451', '0.000001')} - near(PI, 3.1415926535897931) -> True, - near(E, 2.7182818284590451) -> True - 1 - - - -2 * PI -> ${math::truncate(math::degrees(math::multiplication('-2', math::PI())))}, - -PI - 3 * PI/4 -> ${math::truncate(math::degrees(math::subtraction(math::multiplication('-1', math::PI()), math::division(math::multiplication('3', math::PI()), '4'))))}, - -PI - PI/2 -> ${math::truncate(math::degrees(math::subtraction(math::multiplication('-1', math::PI()), math::division(math::PI(), '2'))))}, - -PI - PI/4 -> ${math::truncate(math::degrees(math::subtraction(math::multiplication('-1', math::PI()), math::division(math::PI(), '4'))))}, - -PI -> ${math::truncate(math::degrees(math::multiplication('-1', math::PI())))}, - -3 * PI/4 -> ${math::truncate(math::degrees(math::multiplication('-1', math::division(math::multiplication('3', math::PI()), '4'))))}, - -PI/2 -> ${math::truncate(math::degrees(math::multiplication('-1', math::division(math::PI(), '2'))))}, - -PI/4 -> ${math::truncate(math::degrees(math::multiplication('-1', math::division(math::PI(), '4'))))}, - 0 -> ${math::truncate(math::degrees('0'))}, - PI/4 -> ${math::truncate(math::degrees(math::division(math::PI(), '4')))}, - PI/2 -> ${math::truncate(math::degrees(math::division(math::PI(), '2')))}, - 3 * PI/4 -> ${math::truncate(math::degrees(math::division(math::multiplication('3', math::PI()), '4')))}, - PI -> ${math::truncate(math::degrees(math::PI()))}, - PI + PI/4 -> ${math::truncate(math::degrees(math::addition(math::PI(), math::division(math::PI(), '4'))))}, - PI + PI/2 -> ${math::truncate(math::degrees(math::addition(math::PI(), math::division(math::PI(), '2'))))}, - PI + 3 * PI/4 -> ${math::truncate(math::degrees(math::addition(math::PI(), math::division(math::multiplication('3', math::PI()), '4'))))}, - 2 * PI -> ${math::truncate(math::degrees(math::multiplication('2', math::PI())))} - -2 * PI -> -360, - -PI - 3 * PI/4 -> -315, - -PI - PI/2 -> -270, - -PI - PI/4 -> -225, - -PI -> -180, - -3 * PI/4 -> -135, - -PI/2 -> -90, - -PI/4 -> -45, - 0 -> 0, - PI/4 -> 45, - PI/2 -> 90, - 3 * PI/4 -> 135, - PI -> 180, - PI + PI/4 -> 225, - PI + PI/2 -> 270, - PI + 3 * PI/4 -> 315, - 2 * PI -> 360 - 1 - - - -360 -> ${math::truncate(math::multiplication('100000', math::radians('-360')))}, - -315 -> ${math::truncate(math::multiplication('100000', math::radians('-315')))}, - -270 -> ${math::truncate(math::multiplication('100000', math::radians('-270')))}, - -225 -> ${math::truncate(math::multiplication('100000', math::radians('-225')))}, - -180 -> ${math::truncate(math::multiplication('100000', math::radians('-180')))}, - -135 -> ${math::truncate(math::multiplication('100000', math::radians('-135')))}, - -90 -> ${math::truncate(math::multiplication('100000', math::radians('-90')))}, - -45 -> ${math::truncate(math::multiplication('100000', math::radians('-45')))}, - 0 -> ${math::truncate(math::multiplication('100000', math::radians('0')))}, - 45 -> ${math::truncate(math::multiplication('100000', math::radians('45')))}, - 90 -> ${math::truncate(math::multiplication('100000', math::radians('90')))}, - 135 -> ${math::truncate(math::multiplication('100000', math::radians('135')))}, - 180 -> ${math::truncate(math::multiplication('100000', math::radians('180')))}, - 225 -> ${math::truncate(math::multiplication('100000', math::radians('225')))}, - 270 -> ${math::truncate(math::multiplication('100000', math::radians('270')))}, - 315 -> ${math::truncate(math::multiplication('100000', math::radians('315')))}, - 360 -> ${math::truncate(math::multiplication('100000', math::radians('360')))} - -360 -> -628318, - -315 -> -549778, - -270 -> -471238, - -225 -> -392699, - -180 -> -314159, - -135 -> -235619, - -90 -> -157079, - -45 -> -78539, - 0 -> 0, - 45 -> 78539, - 90 -> 157079, - 135 -> 235619, - 180 -> 314159, - 225 -> 392699, - 270 -> 471238, - 315 -> 549778, - 360 -> 628318 - 1 - - - 3 + 4 -> ${math::truncate(math::addition('3', '4'))}, - 3 - 4 -> ${math::truncate(math::addition('3', '-4'))} - 3 + 4 -> 7, - 3 - 4 -> -1 - 1 - - - 3 - 4 -> ${math::truncate(math::subtraction('3', '4'))}, - 3 + 4 -> ${math::truncate(math::subtraction('3', '-4'))} - 3 - 4 -> -1, - 3 + 4 -> 7 - 1 - - - 3 * 4 -> ${math::truncate(math::multiplication('3', '4'))}, - 3 * -4 -> ${math::truncate(math::multiplication('3', '-4'))} - 3 * 4 -> 12, - 3 * -4 -> -12 - 1 - - - 9 / 3 -> ${math::truncate(math::division('9', '3'))}, - 9 / -3 -> ${math::truncate(math::division('9', '-3'))} - 9 / 3 -> 3, - 9 / -3 -> -3 - 1 - - - empty(double_epsilon()) -> ${string::empty(math::double_epsilon())}, - near(1, 2) -> ${math::near('1', '2')}, - near(1, 2, 0.000001) -> ${math::near('1', '2', '0.000001')}, - less(1, 2) -> ${math::less('1', '2')}, - greater(1, 2) -> ${math::greater('1', '2')} - empty(double_epsilon()) -> False, - near(1, 2) -> False, - near(1, 2, 0.000001) -> False, - less(1, 2) -> True, - greater(1, 2) -> False - 1 - - - The quadratic polynomial - x^2 - 16 = 0 - have next solution(s) - X1 -> - ${math::truncate(math::division(math::addition(math::multiplication('-1', '0'), - math::sqrt(math::subtraction(math::pow('0', '2'), math::multiplication('4', math::multiplication('1', '-16'))))), math::multiplication('2', '1'))))} - X2 -> - ${math::truncate(math::division(math::subtraction(math::multiplication('-1', '0'), - math::sqrt(math::subtraction(math::pow('0', '2'), math::multiplication('4', math::multiplication('1', '-16'))))), math::multiplication('2', '1'))))} - The quadratic polynomial - x^2 - 16 = 0 - have next solution(s) - X1 -> 4 - X2 -> -4 - 1 - - - format-to-string -> ${string::empty(datetime::format-to-string('0', '%A %c'))} - format-to-string -> False - 1 - - - to-string(01.09.2019 2:03:04) -> ${datetime::to-string('01.09.2019 2:03:04')} - to-string(01.09.2019 2:03:04) -> 01.09.2019 2:03:04 - 1 - - - parse(01.09.2019 2:03:04) -> ${datetime::parse('01.09.2019 2:03:04')} - parse(01.09.2019 2:03:04) -> 01.09.2019 2:03:04 - 1 - - - get-day(1569840495) -> ${datetime::get-day('1569840495')} - get-day(1569840495) -> 30 - 1 - - - get-day-of-week(1569840495) -> ${datetime::get-day-of-week('1569840495')} - get-day-of-week(1577059200) -> ${datetime::get-day-of-week('1577059200')} - get-day-of-week(1569840495) -> 1 - get-day-of-week(1577059200) -> 1 - 1 - - - get-day-of-year(1569840495) -> ${datetime::get-day-of-year('1569840495')} - get-day-of-year(1569840495) -> 273 - 1 - - - get-days-in-month(2016, 2) -> ${datetime::get-days-in-month('2016', '2')}, - get-days-in-month(2019, 2) -> ${datetime::get-days-in-month('2019', '2')} - get-days-in-month(2016, 2) -> 29, - get-days-in-month(2019, 2) -> 28 - 1 - - - get-hour(1569840495) -> ${datetime::get-hour('1569840495')} - get-hour(1569840495) -> 10 - 1 - - - get-minute(1569840495) -> ${datetime::get-minute('1569840495')} - get-minute(1569840495) -> 48 - 1 - - - get-month(1569840495) -> ${datetime::get-month('1569840495')} - get-month(1569840495) -> 9 - 1 - - - get-second(1569840495) -> ${datetime::get-second('1569840495')} - get-second(1569840495) -> 15 - 1 - - - get-year(1569840495) -> ${datetime::get-year('1569840495')} - get-year(1569840495) -> 2019 - 1 - - - is-leap-year(2016) -> ${datetime::is-leap-year('2016')}, - is-leap-year(2019) -> ${datetime::is-leap-year('2019')} - is-leap-year(2016) -> True, - is-leap-year(2019) -> False - 1 - - - empty(ticks()) -> ${string::empty(datetime::ticks())} - empty(ticks()) -> False - 1 - - - empty(now-utc()) -> ${string::empty(datetime::now-utc())} - empty(now-utc()) -> False - 1 - - - empty(now()) -> ${string::empty(datetime::now())} - empty(now()) -> False - 1 - - - from-input(30.09.2019 10:48:15) -> ${datetime::from-input('30.09.2019 10:48:15')} - from-input(30.09.2019 10:48:15) -> 1569840495 - 1 - - - from-days(1) -> ${timespan::from-days('1')} - from-days(1) -> 86400 - 1 - - - from-hours(1) -> ${timespan::from-hours('1')} - from-hours(1) -> 3600 - 1 - - - from-milliseconds(10000) -> ${timespan::from-milliseconds('10000')} - from-milliseconds(10000) -> 10 - 1 - - - from-minutes(1) -> ${timespan::from-minutes('1')} - from-minutes(1) -> 60 - 1 - - - from-seconds(1) -> ${timespan::from-seconds('1')} - from-seconds(1) -> 1 - 1 - - - empty(from-ticks(100000000)) -> ${string::empty(timespan::from-ticks('100000000'))} - empty(from-ticks(100000000)) -> False - 1 - - - get-days(86400) -> ${timespan::get-days('86400')} - get-days(86400) -> 1 - 1 - - - get-hours(3600) -> ${timespan::get-hours('3600')} - get-hours(3600) -> 1 - 1 - - - get-minutes(60) -> ${timespan::get-minutes('60')} - get-minutes(60) -> 1 - 1 - - - parse(60) -> ${timespan::parse('60')} - parse(60) -> 60 - 1 - - - to-string(60) -> ${timespan::to-string('60')} - to-string(60) -> 60 - 1 - - - get-seconds(60) -> ${timespan::get-seconds('60')} - get-seconds(60) -> 60 - 1 - - - get-total-seconds(60) -> ${timespan::get-total-seconds('60')} - get-total-seconds(60) -> 60 - 1 - - - empty(get-ticks(10)) -> ${string::empty(timespan::get-ticks('10'))} - empty(get-ticks(10)) -> False - 1 - - - get-total-days(86400) -> ${math::truncate(timespan::get-total-days('86400'))} - get-total-days(86400) -> 1 - 1 - - - get-total-hours(3600) -> ${math::truncate(timespan::get-total-hours('3600'))} - get-total-hours(3600) -> 1 - 1 - - - get-total-milliseconds(1) -> ${timespan::get-total-milliseconds('1')} - get-total-milliseconds(1) -> 1000 - 1 - - - get-total-minutes(60) -> ${math::truncate(timespan::get-total-minutes('60'))} - get-total-minutes(60) -> 1 - 1 - - - ${long::to-string('0')} == ${int64::to-string('0')} - 0 == 0 - 1 - - - ${long::to-string('9223372036854775807')} == ${int64::to-string('9223372036854775807')} - 9223372036854775807 == 9223372036854775807 - 1 - - - ${long::to-string('-9223372036854775808')} == ${int64::to-string('-9223372036854775808')} - -9223372036854775808 == -9223372036854775808 - 1 - - - ${version::less('1.0', '2.0')} - True - 1 - - - ${version::less('2.0', '2.0')} - False - 1 - - - ${version::greater('2.0', '2.0')} - False - 1 - - - ${version::greater('2.0', '1.0')} - True - 1 - - - exists('attrib') -> ${task::exists('attrib')} - exists('call') -> ${task::exists('call')} - exists('choose') -> ${task::exists('choose')} - exists('copy') -> ${task::exists('copy')} - exists('delete') -> ${task::exists('delete')} - exists('description') -> ${task::exists('description')} - exists('echo') -> ${task::exists('echo')} - exists('exec') -> ${task::exists('exec')} - exists('fail') -> ${task::exists('fail')} - exists('foreach') -> ${task::exists('foreach')} - exists('if') -> ${task::exists('if')} - exists('include') -> ${task::exists('include')} - exists('loadfile') -> ${task::exists('loadfile')} - exists('loadtasks') -> ${task::exists('loadtasks')} - exists('mkdir') -> ${task::exists('mkdir')} - exists('move') -> ${task::exists('move')} - exists('program') -> ${task::exists('program')} - exists('project') -> ${task::exists('project')} - exists('property') -> ${task::exists('property')} - exists('setenv') -> ${task::exists('setenv')} - exists('sleep') -> ${task::exists('sleep')} - exists('target') -> ${task::exists('target')} - exists('touch') -> ${task::exists('touch')} - exists('trycatch') -> ${task::exists('trycatch')} - exists('tstamp') -> ${task::exists('tstamp')} - exists('uptodate') -> ${task::exists('uptodate')} - exists('attrib') -> True - exists('call') -> True - exists('choose') -> True - exists('copy') -> True - exists('delete') -> True - exists('description') -> True - exists('echo') -> True - exists('exec') -> True - exists('fail') -> True - exists('foreach') -> True - exists('if') -> True - exists('include') -> False - exists('loadfile') -> True - exists('loadtasks') -> True - exists('mkdir') -> True - exists('move') -> True - exists('program') -> True - exists('project') -> True - exists('property') -> True - exists('setenv') -> False - exists('sleep') -> True - exists('target') -> True - exists('touch') -> True - exists('trycatch') -> True - exists('tstamp') -> False - exists('uptodate') -> False - 1 - - - exists('build') -> ${target::exists('build')} - exists('build') -> False - 1 - - - exists() -> ${target::exists()} - exists() -> - 0 - - - get-current-target() -> ${target::get-current-target()} - get-current-target() -> - 0 - - - has-executed('build') -> ${target::has-executed('build')} - has-executed('build') -> False - 1 - - - has-executed() -> ${target::has-executed()} - has-executed() -> - 0 - - - blake2b-160('') -> ${hash::bytes-to-string(hash::blake2b('', '160'))} - blake2b-160('') -> 3345524abf6bbe1809449224b5972c41790b6cf2 - 1 - - - blake2b-256('') -> ${hash::bytes-to-string(hash::blake2b('', '256'))} - blake2b-256('') -> 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8 - 1 - - - blake2b-256('') -> ${hash::bytes-to-string(hash::blake2b(''))} - blake2b-256('') -> 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8 - 1 - - - blake2b-384('') -> ${hash::bytes-to-string(hash::blake2b('', '384'))} - blake2b-384('') -> b32811423377f52d7862286ee1a72ee540524380fda1724a6f25d7978c6fd3244a6caf0498812673c5e05ef583825100 - 1 - - - blake2b-512('') -> ${hash::bytes-to-string(hash::blake2b('', '512'))} - blake2b-512('') -> 786a02f742015903c6c6fd852552d272912f4740e15847618a86e217f71f5419d25e1031afee585313896444934eb04b903a685b1448b755d56f701afe9be2ce - 1 - - - blake3('') -> ${hash::bytes-to-string(hash::blake3('', '256'))} - blake3('') -> af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262 - 1 - - - blake3('') -> ${hash::bytes-to-string(hash::blake3(''))} - blake3('') -> af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262 - 1 - - - bytes-to-string('') -> ${hash::bytes-to-string('')} - bytes-to-string('') -> - 1 - - - bytes-to-string(' ') -> ${hash::bytes-to-string(' ')} - bytes-to-string(' ') -> 090a0d - 1 - - - crc32('') -> ${hash::bytes-to-string(hash::crc32(''))} - crc32('') -> 00000000 - 1 - - - crc32('', 'decreasing') -> ${hash::bytes-to-string(hash::crc32('', 'decreasing'))} - crc32('', 'decreasing') -> 00000000 - 1 - - - crc32('', 'increasing') -> ${hash::bytes-to-string(hash::crc32('', 'increasing'))} - crc32('', 'increasing') -> 00000000 - 1 - - - crc32('The quick brown fox jumps over the lazy dog') -> ${hash::bytes-to-string(hash::crc32('The quick brown fox jumps over the lazy dog'))} - crc32('The quick brown fox jumps over the lazy dog') -> 39a34f41 - 1 - - - crc32('The quick brown fox jumps over the lazy dog', 'decreasing') -> ${hash::bytes-to-string(hash::crc32('The quick brown fox jumps over the lazy dog', 'decreasing'))} - crc32('The quick brown fox jumps over the lazy dog', 'decreasing') -> 414fa339 - 1 - - - crc32('The quick brown fox jumps over the lazy dog', 'increasing') -> ${hash::bytes-to-string(hash::crc32('The quick brown fox jumps over the lazy dog', 'increasing'))} - crc32('The quick brown fox jumps over the lazy dog', 'increasing') -> 39a34f41 - 1 - - - hash::keccak-224('') -> ${hash::bytes-to-string(hash::keccak('', '224'))} - hash::keccak-224('') -> f71837502ba8e10837bdd8d365adb85591895602fc552b48b7390abd - 1 - - - hash::keccak-256('') -> ${hash::bytes-to-string(hash::keccak('', '256'))} - hash::keccak-256('') -> c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 - 1 - - - hash::keccak-256('') -> ${hash::bytes-to-string(hash::keccak(''))} - hash::keccak-256('') -> c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 - 1 - - - hash::keccak-384('') -> ${hash::bytes-to-string(hash::keccak('', '384'))} - hash::keccak-384('') -> 2c23146a63a29acf99e73b88f8c24eaa7dc60aa771780ccc006afbfa8fe2479b2dd2b21362337441ac12b515911957ff - 1 - - - hash::keccak-512('') -> ${hash::bytes-to-string(hash::keccak('', '512'))} - hash::keccak-512('') -> 0eab42de4c3ceb9235fc91acffe746b29c29a8c366b7c60e4e67c466f36a4304c00fa9caf9d87976ba469bcbe06713b435f091ef2769fb160cdab33d3670680e - 1 - - - hash::sha3-224('') -> ${hash::bytes-to-string(hash::sha3('', '224'))} - hash::sha3-224('') -> 6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7 - 1 - - - hash::sha3-256('') -> ${hash::bytes-to-string(hash::sha3('', '256'))} - hash::sha3-256('') -> a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a - 1 - - - hash::sha3-256('') -> ${hash::bytes-to-string(hash::sha3(''))} - hash::sha3-256('') -> a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a - 1 - - - hash::sha3-384('') -> ${hash::bytes-to-string(hash::sha3('', '384'))} - hash::sha3-384('') -> 0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004 - 1 - - - hash::sha3-512('') -> ${hash::bytes-to-string(hash::sha3('', '512'))} - hash::sha3-512('') -> a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26 - 1 - - - ${string::empty( - - directory::enumerate-file-system-entries(path::get-temp-path(), 'directory') - directory::enumerate-file-system-entries(path::get-temp-path(), 'file') - directory::enumerate-file-system-entries(path::get-temp-path(), 'all') - - directory::enumerate-file-system-entries(path::get-temp-path(), 'directory', 'false') - directory::enumerate-file-system-entries(path::get-temp-path(), 'file', 'false') - directory::enumerate-file-system-entries(path::get-temp-path(), 'all', 'false') - - )} - False - 1 - - - exists(get-temp-path()) -> ${directory::exists(path::get-temp-path())} - exists(get-temp-path()) -> True - 1 - - - ${string::empty( - directory::get-creation-time(path::get-temp-path()) - directory::get-creation-time-utc(path::get-temp-path()) - )} - False - 1 - - - ${string::empty( - directory::get-last-access-time(path::get-temp-path()) - directory::get-last-access-time-utc(path::get-temp-path()) - )} - False - 1 - - - ${string::empty( - directory::get-last-write-time(path::get-temp-path()) - directory::get-last-write-time-utc(path::get-temp-path()) - )} - False - 1 - - - ${string::empty( - directory::get-directory-root(path::get-temp-path()) - )} - False - 1 - - - ${string::empty( - directory::get-parent-directory(environment::get-folder-path('Personal')) - )} - False - 1 - - - ${string::empty( - directory::get-current-directory() - )} - False - 1 - - - ${string::empty( - directory::get-logical-drives()) - )} - False - 1 - - - ${string::contains('my ${file} is here', '${file}')} - True - 1 - - - ${string::contains('my ${current file} is here', '${file}')} - False - 1 - - - ${string::replace(string::quote('{math::truncate(math::addition(a, b))}'), '{', '${')} - "${math::truncate(math::addition(a, b))}" - 1 - - - ${path::glob('1.txt', '*.txt')} - True - 1 - - - ${path::glob('1.txt', '*.bat')} - False - 1 - - - ]]> - 1 - - - ]]> - 1 - - - -Hello! Do you know that last-index-of('ABAB', 'B') is ${string::last-index-of('ABAB', 'B')}? - />]]> - 1 - - - ]]> - 1 - - - ]]> - 1 - - - - - - - - - - - - - - - - - - ant4c.dns.dll - 1 - - - ant4c.regex.dll - 1 - - - - - - -1.5 - 1.5 - - - -1 - 1 - - - -0.5 - 0.5 - - - 0 - 0 - - - 0.5 - 0.5 - - - 1 - 1 - - - 1.5 - 1.5 - - - -1.75 - -1 - - - -1.5 - -1 - - - -1.25 - -1 - - - -1 - -1 - - - -0.75 - 0 - - - -0.5 - 0 - - - -0.25 - 0 - - - 0 - 0 - - - 0.25 - 1 - - - 0.5 - 1 - - - 0.75 - 1 - - - 1 - 1 - - - 1.25 - 2 - - - 1.5 - 2 - - - 1.75 - 2 - - - -1.75 - -2 - - - -1.5 - -2 - - - -1.25 - -2 - - - -1 - -1 - - - -0.75 - -1 - - - -0.5 - -1 - - - -0.25 - -1 - - - 0 - 0 - - - 0.25 - 0 - - - 0.5 - 0 - - - 0.75 - 0 - - - 1 - 1 - - - 1.25 - 1 - - - 1.5 - 1 - - - 1.75 - 1 - - - -1.75 - -2 - - - -1.5 - -2 - - - -1.25 - -1 - - - -1 - -1 - - - -0.75 - -1 - - - -0.5 - 0 - - - -0.25 - 0 - - - 0 - 0 - - - 0.25 - 0 - - - 0.5 - 0 - - - 0.75 - 1 - - - 1 - 1 - - - 1.25 - 1 - - - 1.5 - 2 - - - 1.75 - 2 - - - - - - - - - - - C:\1.txt - .txt - C:\1.txt - 1 - - - C:\1.txt - .exe - C:\1.exe - 1 - - - - - - 1 - - - C:\ - \Windows - C:\Windows - 1 - - - - \Windows - \Windows - 1 - - - C:\ - - C:\ - 1 - - - C:/ - /Windows - C:\Windows - 1 - - - - /Windows - \Windows - 1 - - - C:/ - - C:\ - 1 - - - C:/ - \Windows - C:\Windows - 1 - - - C:\ - /Windows - C:\Windows - 1 - - - /tmp/ - /file - /tmp/file - 1 - - - - /file - /file - 1 - - - /tmp/ - - /tmp/ - 1 - - - /tmp/ - \file - /tmp/file - 1 - - - - \file - /file - 1 - - - \tmp/ - - /tmp/ - 1 - - - \tmp\ - /file - /tmp/file - 1 - - - - - - - - C:\Windows\System32\cmd.exe - C:\Windows\System32 - 1 - - - /tmp/file - /tmp - 1 - - - C:\Temp - C: - 1 - - - C:\Temp\ - C:\Temp - 1 - - - /tmp - / - 1 - - - /tmp/ - /tmp - 1 - - - - - - - - 1.txt - .txt - 1 - - - 1. - - - - - - - - - - C:\Windows\System32\cmd.exe - cmd.exe - 1 - - - /tmp/file - file - 1 - - - - - - - - 1.txt - 1 - 1 - - - abc.txt - abc - 1 - - - - - - - - - C:\ - C:\Windows\System32 - C:\Windows\System32 - 1 - - - C:\Windows\System32 - ..\..\ - C:\ - 1 - - - C:\ - ..\..\ - - 0 - - - /tmp - ../ - / - 1 - - - /tmp - 4 - /.. - 3 - / - 1 - - - C:\ - 3 - sample.build - 12 - C:\sample.build - 1 - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - 1 - - - - This is a sample project for a test case. - - - - - ]]> - 1 - Example project. - Say hello. - Say hello. - - - - - - - ]]> - 1 - property_test - - - - Calculate 'real' solution(s) of quadratic polynomial. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ${line} - - - ]]> - 1 - discriminant - Calculate 'real' solution(s) of quadratic polynomial. - - - - - - - ]]> - 1 - tasks_to_skip - - - - - - - - - - - - - - ]]> - 1 - discriminant - - - - - - - - ]]> - 1 - project-properties - some_target - - - - - - - - - - ]]> - 1 - loadfile sample - - - - - - - - - - - - ]]> - 1 - touch sample - - - - - - ]]> - 0 - 1 - fail sample 1 - - - - ${project::get-name()} - failed to continue interpreting script. - - ]]> - 0 - 1 - fail sample 2 - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - sleep sample - - - - - Attribute task will be ignored on non Windows platforms. - - - - - - - - - 1 - attrib sample - - - - - - - ]]> - 1 - property sample - - - - - The Hello World sample of project and target descriptions. - - - - - - - - - Publish the output of project - - - - - - ]]> - 1 - 1 - Hello descriptions! - foo - foo - clean - build - publish - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - File functions - - - - - - - - - - - - - - - - - ]]> - 1 - If task sample - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - Choose task sample - - - - - - - - ]]> - 1 - Property in the expression. - - - - - - - - ]]> - 0 - 1 - Target task sample 1 - A - - - - - - - - ]]> - 1 - Target task sample 2 - A - B - - - - - - - - - ]]> - 1 - Target task sample 3 - A - B - C - D - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - Target task sample 4 - D - A - B - C - D - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - Target task sample 5 - D - A - B - C - D - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - Target task sample 6 - D - A - B - C - D - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - Target task sample 7 - D - A - B - C - D - - - - - - - - ]]> - 1 - 0 - Target task sample 8 - A - A - B - - - - - - - - - - - - - - - ]]> - 1 - Call task sample - B - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - Call example - Run - A - B - C - Run - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - For each sample 1. - - - - - - A,a,1 - B,b,2 - C,c,3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - For each sample 2. - - - - - - - - - - ]]> - 1 - For each sample 3. - - - - - - - - - - ]]> - 1 - For each sample 4. - - - - - - - - - - - - - ]]> - 1 - For each sample 5. - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - For each sample 6. - - - - - - - - - - - ]]> - - 1 - For each sample 7. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - - - - - - ${file} - - - - - - ]]> - 1 - Program sample 1. - - - - - - ${file} - - - - - - - - - - - ]]> - 1 - Program sample 2. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - - - - - - - - - - - - - - - - - - - - ]]> - 1 - 'Try catch' sample 1. - - - - - - - - - - - - - - - - - - - - - - - ]]> - 'Try catch' sample 2. - 0 - 1 - - - - - - - - - - - - - - - - - ]]> - File replace sample. - 1 - - - - - - ]]> - 1 - Wild target sample 1. - in_the_middle_of_nowhere - - - - - - ]]> - 1 - Wild target sample 2. - in_the_middle_of_nowhere - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - Copy/move file sample 1. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - Copy/move file sample 2. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - Copy/move file sample 3. - ${path::get-temp-path()} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - Copy/move file sample 4. - - - - - - - - - - - - - - - - ]]> - 1 - Copy/move file sample 5. - ${path::get-temp-path()} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - Copy/move file sample 6. - ${path::get-temp-path()} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - Copy/move folder sample 1. - ${path::get-temp-path()} - - - - - - - - - - ]]> - 1 - Copy/move folder sample 2. - ${path::get-temp-path()} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - Copy/move folder sample 3. - ${path::get-temp-path()} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - Copy/move folder sample 4. - ${path::get-temp-path()} - - - - - - - - - - - - - - - ]]> - 1 - project-properties - some_target - some_target - - - - - - - - - - - - - - - - - - ]]> - 1 - target_with_call_sample - target_with_call_sample - target_that_was_called - - - - - - - - - - - - - - - - - - - - ]]> - 1 - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - load regex task - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - 1 - load dns function - - - - - 1 - - - - 1 - - - - 1 - 1 - - - - 1 - - - - 1 - 0 - - - - 1 - - - - 1 - - - - - 0 - - - - 1 - - - - - 1 - - - - - 1 - - - - 1 - - - - 1 - - - - - 1 - - - - - 1 - - - - - - ]]> - 1 - 0 - - - - ]]> - 1 - 0 - - - - ]]> - 1 - - - - 1 - 1 - - - - ]]> - 1 - - - - 1 - 1 - - - - ]]> - 1 - - - - 0 - 1 - - - - ]]> - ]]> - 0 - 1 - - - - ]]> - - ]]> - ]]> - ]]> - ]]> - ]]> - - ]]> - 1 - - - - 0 - 1 - - - - 0 - 1 - - - - 0 - 1 - - - - 0 - 1 - - - - 1 - 0 - ]]> - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - 1 - - - - - - - - - - - - - - 1 - - - - 2 - - - ~ - 1 - - - ¡ - 1 - - - ¡߿ - 2 - - - ¡ࢠ - 2 - - - ࢠ - 1 - - - ࢠ○ - 2 - - - العربية - 7 - - - 한국어 - 3 - - - ꆈꌠꁱꂷ (ꍏꉸꏓꂱꇭꉼꇩ) - 14 - - - - - 1 - -1 - - - "" - "" - 1 - 0 - - - 123 - 3 - 1 - 2 - - - - - -1 - -1 - - - "" - "" - -1 - 0 - - - 123 - 3 - -1 - 2 - - - 123 - 1 - -1 - 0 - - - ࢠ○ - - 1 - 1 - - - العربية - ب - 1 - 4 - - - 한국어 - - 1 - 1 - - - ꆈꌠꁱꂷ (ꍏꉸꏓꂱꇭꉼꇩ) - - 1 - 10 - - - العربية - ةيب - 4 - - - 한국어 - 어국 - 1 - - - ꆈꌠꁱꂷ (ꍏꉸꏓꂱꇭꉼꇩ) - )ꇭꇩ - 10 - - - العربية - ةيب - 6 - - - 한국어 - 어국 - 2 - - - ꆈꌠꁱꂷ (ꍏꉸꏓꂱꇭꉼꇩ) - ꇩꇭ) - 13 - - - - - 1 - 1 - - right - - - - - - - 0 - - - abc - b - ABC - aABCc - 1 - - - abc123 - bc1 - - a23 - 1 - - - abc123 - bc1 - b01 - ab0123 - 1 - - - abc123 - bc1 - 01 - a0123 - 1 - - - abc123 - 123 - - abc - 1 - - - abc123 - 123 - 4 - abc4 - 1 - - - abc123 - 123 - 456 - abc456 - 1 - - - abc123 - 123 - 123 - abc123 - 1 - - - abc123 - 123 - 123456 - abc123456 - 1 - - - abc123 - 3 - 1 - abc121 - 1 - - - abc123 - 3 - 3 - abc123 - 1 - - - abc - abc - 123 - 123 - 1 - - - abc - a - 1 - 1bc - 1 - - - abc - a - - bc - 1 - - - abc - a - ABCa - ABCabc - 1 - - - abc - a - a - abc - 1 - - - - - - [Info]: - - - 1 - - - - - - - - - - - - - - Abc - upper - ABC - 1 - - - ABC - upper - ABC - 1 - - - Abc - lower - abc - 1 - - - ABC - lower - abc - 1 - - - - - all - - 1 - - - - 1 - all - - 1 - - - abc - 5 - all - abc - 1 - - - abc - 4 - all - abc - 1 - - - abc - 4 - all - abc - 1 - - - abc - 3 - all - abc - 1 - - - .txt - 4 - end - .txt - 1 - - - abc - 5 - start - abc - 1 - - - abc - 4 - start - abc - 1 - - - abc - 4 - start - abc - 1 - - - abc - 3 - start - abc - 1 - - - - 1 - end - - 1 - - - .txt - 4 - end - .txt - 1 - - - abc - 5 - end - abc - 1 - - - abc - 4 - end - abc - 1 - - - abc - 4 - end - abc - 1 - - - abc - 3 - end - abc - 1 - - - abcd - 3 - end - abc - 1 - - - abc d - 4 - end - abc - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - "" - - - a b c - 1 - "a b c" - - - - 1 - - - - " - 1 - - - - "a b c" - 1 - a b c - - - ""a b c"" - 1 - a b c - - - '' - 1 - - - - "" - 1 - - - - - - 1 - - - a - b - 0 - - - c - c - 1 - - - - - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF - 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F - 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F - 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F - 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F - 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F - 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F - 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F - 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F - 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF - 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF - 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF - 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF - 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF - 0xF0 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF - 874 - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF - 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F - 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F - 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F - 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F - 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F - 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F - 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - - 0x20AC 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0x2026 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD - 0xFFFD 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD - - 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD - 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD - 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD - 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD - 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD - 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD - - - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF - 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F - 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F - 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F - 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F - 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F - 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F - 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F - 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F - 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF - 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF - 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF - 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF - 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF - 0xF0 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF - 1250 - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF - 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F - 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F - 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F - 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F - 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F - 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F - 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - - 0x20AC 0xFFFD 0x201A 0xFFFD 0x201E 0x2026 0x2020 0x2021 0xFFFD 0x2030 0x0160 0x2039 0x015A 0x0164 0x017D 0x0179 - 0xFFFD 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 0xFFFD 0x2122 0x0161 0x203A 0x015B 0x0165 0x017E 0x017A - 0x00A0 0x02C7 0x02D8 0x0141 0x00A4 0x0104 0x00A6 0x00A7 0x00A8 0x00A9 0x015E 0x00AB 0x00AC 0x00AD 0x00AE 0x017B - 0x00B0 0x00B1 0x02DB 0x0142 0x00B4 0x00B5 0x00B6 0x00B7 0x00B8 0x0105 0x015F 0x00BB 0x013D 0x02DD 0x013E 0x017C - 0x0154 0x00C1 0x00C2 0x0102 0x00C4 0x0139 0x0106 0x00C7 0x010C 0x00C9 0x0118 0x00CB 0x011A 0x00CD 0x00CE 0x010E - 0x0110 0x0143 0x0147 0x00D3 0x00D4 0x0150 0x00D6 0x00D7 0x0158 0x016E 0x00DA 0x0170 0x00DC 0x00DD 0x0162 0x00DF - 0x0155 0x00E1 0x00E2 0x0103 0x00E4 0x013A 0x0107 0x00E7 0x010D 0x00E9 0x0119 0x00EB 0x011B 0x00ED 0x00EE 0x010F - 0x0111 0x0144 0x0148 0x00F3 0x00F4 0x0151 0x00F6 0x00F7 0x0159 0x016F 0x00FA 0x0171 0x00FC 0x00FD 0x0163 0x02D9 - - - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF - 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F - 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F - 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F - 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F - 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F - 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F - 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F - 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F - 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF - 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF - 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF - 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF - 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF - 0xF0 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF - 1251 - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF - 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F - 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F - 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F - 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F - 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F - 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F - 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - - 0x0402 0x0403 0x201A 0x0453 0x201E 0x2026 0x2020 0x2021 0x20AC 0x2030 0x0409 0x2039 0x040A 0x040C 0x040B 0x040F - 0x0452 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 0xFFFD 0x2122 0x0459 0x203A 0x045A 0x045C 0x045B 0x045F - 0x00A0 0x040E 0x045E 0x0408 0x00A4 0x0490 0x00A6 0x00A7 0x0401 0x00A9 0x0404 0x00AB 0x00AC 0x00AD 0x00AE 0x0407 - 0x00B0 0x00B1 0x0406 0x0456 0x0491 0x00B5 0x00B6 0x00B7 0x0451 0x2116 0x0454 0x00BB 0x0458 0x0405 0x0455 0x0457 - 0x0410 0x0411 0x0412 0x0413 0x0414 0x0415 0x0416 0x0417 0x0418 0x0419 0x041A 0x041B 0x041C 0x041D 0x041E 0x041F - 0x0420 0x0421 0x0422 0x0423 0x0424 0x0425 0x0426 0x0427 0x0428 0x0429 0x042A 0x042B 0x042C 0x042D 0x042E 0x042F - 0x0430 0x0431 0x0432 0x0433 0x0434 0x0435 0x0436 0x0437 0x0438 0x0439 0x043A 0x043B 0x043C 0x043D 0x043E 0x043F - 0x0440 0x0441 0x0442 0x0443 0x0444 0x0445 0x0446 0x0447 0x0448 0x0449 0x044A 0x044B 0x044C 0x044D 0x044E 0x044F - - - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF - 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F - 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F - 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F - 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F - 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F - 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F - 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F - 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F - 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF - 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF - 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF - 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF - 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF - 0xF0 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF - 1252 - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF - 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F - 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F - 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F - 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F - 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F - 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F - 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - - 0x20AC 0xFFFD 0x201A 0x0192 0x201E 0x2026 0x2020 0x2021 0x02C6 0x2030 0x0160 0x2039 0x0152 0xFFFD 0x017D 0xFFFD - 0xFFFD 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 0x02DC 0x2122 0x0161 0x203A 0x0153 0xFFFD 0x017E 0x0178 - 0x00A0 0x00A1 0x00A2 0x00A3 0x00A4 0x00A5 0x00A6 0x00A7 0x00A8 0x00A9 0x00AA 0x00AB 0x00AC 0x00AD 0x00AE 0x00AF - 0x00B0 0x00B1 0x00B2 0x00B3 0x00B4 0x00B5 0x00B6 0x00B7 0x00B8 0x00B9 0x00BA 0x00BB 0x00BC 0x00BD 0x00BE 0x00BF - 0x00C0 0x00C1 0x00C2 0x00C3 0x00C4 0x00C5 0x00C6 0x00C7 0x00C8 0x00C9 0x00CA 0x00CB 0x00CC 0x00CD 0x00CE 0x00CF - 0x00D0 0x00D1 0x00D2 0x00D3 0x00D4 0x00D5 0x00D6 0x00D7 0x00D8 0x00D9 0x00DA 0x00DB 0x00DC 0x00DD 0x00DE 0x00DF - 0x00E0 0x00E1 0x00E2 0x00E3 0x00E4 0x00E5 0x00E6 0x00E7 0x00E8 0x00E9 0x00EA 0x00EB 0x00EC 0x00ED 0x00EE 0x00EF - 0x00F0 0x00F1 0x00F2 0x00F3 0x00F4 0x00F5 0x00F6 0x00F7 0x00F8 0x00F9 0x00FA 0x00FB 0x00FC 0x00FD 0x00FE 0x00FF - - - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF - 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F - 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F - 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F - 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F - 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F - 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F - 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F - 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F - 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF - 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF - 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF - 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF - 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF - 0xF0 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF - 1253 - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF - 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F - 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F - 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F - 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F - 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F - 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F - 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - - 0x20AC 0xFFFD 0x201A 0x0192 0x201E 0x2026 0x2020 0x2021 0xFFFD 0x2030 0xFFFD 0x2039 0xFFFD 0xFFFD 0xFFFD 0xFFFD - 0xFFFD 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 0xFFFD 0x2122 0xFFFD 0x203A 0xFFFD 0xFFFD 0xFFFD 0xFFFD - 0x00A0 0x0385 0x0386 0x00A3 0x00A4 0x00A5 0x00A6 0x00A7 0x00A8 0x00A9 0xFFFD 0x00AB 0x00AC 0x00AD 0x00AE 0x2015 - 0x00B0 0x00B1 0x00B2 0x00B3 0x0384 0x00B5 0x00B6 0x00B7 0x0388 0x0389 0x038A 0x00BB 0x038C 0x00BD 0x038E 0x038F - 0x0390 0x0391 0x0392 0x0393 0x0394 0x0395 0x0396 0x0397 0x0398 0x0399 0x039A 0x039B 0x039C 0x039D 0x039E 0x039F - 0x03A0 0x03A1 0xFFFD 0x03A3 0x03A4 0x03A5 0x03A6 0x03A7 0x03A8 0x03A9 0x03AA 0x03AB 0x03AC 0x03AD 0x03AE 0x03AF - 0x03B0 0x03B1 0x03B2 0x03B3 0x03B4 0x03B5 0x03B6 0x03B7 0x03B8 0x03B9 0x03BA 0x03BB 0x03BC 0x03BD 0x03BE 0x03BF - 0x03C0 0x03C1 0x03C2 0x03C3 0x03C4 0x03C5 0x03C6 0x03C7 0x03C8 0x03C9 0x03CA 0x03CB 0x03CC 0x03CD 0x03CE 0xFFFD - - - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF - 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F - 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F - 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F - 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F - 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F - 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F - 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F - 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F - 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF - 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF - 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF - 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF - 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF - 0xF0 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF - 1254 - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF - 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F - 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F - 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F - 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F - 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F - 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F - 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - - 0x20AC 0xFFFD 0x201A 0x0192 0x201E 0x2026 0x2020 0x2021 0x02C6 0x2030 0x0160 0x2039 0x0152 0xFFFD 0xFFFD 0xFFFD - 0xFFFD 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 0x02DC 0x2122 0x0161 0x203A 0x0153 0xFFFD 0xFFFD 0x0178 - 0x00A0 0x00A1 0x00A2 0x00A3 0x00A4 0x00A5 0x00A6 0x00A7 0x00A8 0x00A9 0x00AA 0x00AB 0x00AC 0x00AD 0x00AE 0x00AF - 0x00B0 0x00B1 0x00B2 0x00B3 0x00B4 0x00B5 0x00B6 0x00B7 0x00B8 0x00B9 0x00BA 0x00BB 0x00BC 0x00BD 0x00BE 0x00BF - 0x00C0 0x00C1 0x00C2 0x00C3 0x00C4 0x00C5 0x00C6 0x00C7 0x00C8 0x00C9 0x00CA 0x00CB 0x00CC 0x00CD 0x00CE 0x00CF - 0x011E 0x00D1 0x00D2 0x00D3 0x00D4 0x00D5 0x00D6 0x00D7 0x00D8 0x00D9 0x00DA 0x00DB 0x00DC 0x0130 0x015E 0x00DF - 0x00E0 0x00E1 0x00E2 0x00E3 0x00E4 0x00E5 0x00E6 0x00E7 0x00E8 0x00E9 0x00EA 0x00EB 0x00EC 0x00ED 0x00EE 0x00EF - 0x011F 0x00F1 0x00F2 0x00F3 0x00F4 0x00F5 0x00F6 0x00F7 0x00F8 0x00F9 0x00FA 0x00FB 0x00FC 0x0131 0x015F 0x00FF - - - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF - 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F - 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F - 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F - 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F - 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F - 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F - 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F - 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F - 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF - 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF - 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF - 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF - 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF - 0xF0 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF - 1255 - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF - 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F - 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F - 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F - 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F - 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F - 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F - 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - - 0x20AC 0xFFFD 0x201A 0x0192 0x201E 0x2026 0x2020 0x2021 0x02C6 0x2030 0xFFFD 0x2039 0xFFFD 0xFFFD 0xFFFD 0xFFFD - 0xFFFD 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 0x02DC 0x2122 0xFFFD 0x203A 0xFFFD 0xFFFD 0xFFFD 0xFFFD - 0x00A0 0x00A1 0x00A2 0x00A3 0x20AA 0x00A5 0x00A6 0x00A7 0x00A8 0x00A9 0x00D7 0x00AB 0x00AC 0x00AD 0x00AE 0x00AF - 0x00B0 0x00B1 0x00B2 0x00B3 0x00B4 0x00B5 0x00B6 0x00B7 0x00B8 0x00B9 0x00F7 0x00BB 0x00BC 0x00BD 0x00BE 0x00BF - 0x05B0 0x05B1 0x05B2 0x05B3 0x05B4 0x05B5 0x05B6 0x05B7 0x05B8 0x05B9 0xFFFD 0x05BB 0x05BC 0x05BD 0x05BE 0x05BF - 0x05C0 0x05C1 0x05C2 0x05C3 0x05F0 0x05F1 0x05F2 0x05F3 0x05F4 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD - 0x05D0 0x05D1 0x05D2 0x05D3 0x05D4 0x05D5 0x05D6 0x05D7 0x05D8 0x05D9 0x05DA 0x05DB 0x05DC 0x05DD 0x05DE 0x05DF - 0x05E0 0x05E1 0x05E2 0x05E3 0x05E4 0x05E5 0x05E6 0x05E7 0x05E8 0x05E9 0x05EA 0xFFFD 0xFFFD 0x200E 0x200F 0xFFFD - - - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF - 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F - 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F - 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F - 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F - 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F - 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F - 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F - 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F - 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF - 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF - 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF - 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF - 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF - 0xF0 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF - 1256 - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF - 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F - 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F - 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F - 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F - 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F - 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F - 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - - 0x20AC 0x067E 0x201A 0x0192 0x201E 0x2026 0x2020 0x2021 0x02C6 0x2030 0x0679 0x2039 0x0152 0x0686 0x0698 0x0688 - 0x06AF 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 0x06A9 0x2122 0x0691 0x203A 0x0153 0x200C 0x200D 0x06BA - 0x00A0 0x060C 0x00A2 0x00A3 0x00A4 0x00A5 0x00A6 0x00A7 0x00A8 0x00A9 0x06BE 0x00AB 0x00AC 0x00AD 0x00AE 0x00AF - 0x00B0 0x00B1 0x00B2 0x00B3 0x00B4 0x00B5 0x00B6 0x00B7 0x00B8 0x00B9 0x061B 0x00BB 0x00BC 0x00BD 0x00BE 0x061F - 0x06C1 0x0621 0x0622 0x0623 0x0624 0x0625 0x0626 0x0627 0x0628 0x0629 0x062A 0x062B 0x062C 0x062D 0x062E 0x062F - 0x0630 0x0631 0x0632 0x0633 0x0634 0x0635 0x0636 0x00D7 0x0637 0x0638 0x0639 0x063A 0x0640 0x0641 0x0642 0x0643 - 0x00E0 0x0644 0x00E2 0x0645 0x0646 0x0647 0x0648 0x00E7 0x00E8 0x00E9 0x00EA 0x00EB 0x0649 0x064A 0x00EE 0x00EF - 0x064B 0x064C 0x064D 0x064E 0x00F4 0x064F 0x0650 0x00F7 0x0651 0x00F9 0x0652 0x00FB 0x00FC 0x200E 0x200F 0x06D2 - - - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF - 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F - 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F - 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F - 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F - 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F - 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F - 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F - 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F - 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF - 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF - 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF - 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF - 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF - 0xF0 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF - 1257 - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF - 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F - 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F - 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F - 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F - 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F - 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F - 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - - 0x20AC 0xFFFD 0x201A 0xFFFD 0x201E 0x2026 0x2020 0x2021 0xFFFD 0x2030 0xFFFD 0x2039 0xFFFD 0x00A8 0x02C7 0x00B8 - 0xFFFD 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 0xFFFD 0x2122 0xFFFD 0x203A 0xFFFD 0x00AF 0x02DB 0xFFFD - 0x00A0 0xFFFD 0x00A2 0x00A3 0x00A4 0xFFFD 0x00A6 0x00A7 0x00D8 0x00A9 0x0156 0x00AB 0x00AC 0x00AD 0x00AE 0x00C6 - 0x00B0 0x00B1 0x00B2 0x00B3 0x00B4 0x00B5 0x00B6 0x00B7 0x00F8 0x00B9 0x0157 0x00BB 0x00BC 0x00BD 0x00BE 0x00E6 - 0x0104 0x012E 0x0100 0x0106 0x00C4 0x00C5 0x0118 0x0112 0x010C 0x00C9 0x0179 0x0116 0x0122 0x0136 0x012A 0x013B - 0x0160 0x0143 0x0145 0x00D3 0x014C 0x00D5 0x00D6 0x00D7 0x0172 0x0141 0x015A 0x016A 0x00DC 0x017B 0x017D 0x00DF - 0x0105 0x012F 0x0101 0x0107 0x00E4 0x00E5 0x0119 0x0113 0x010D 0x00E9 0x017A 0x0117 0x0123 0x0137 0x012B 0x013C - 0x0161 0x0144 0x0146 0x00F3 0x014D 0x00F5 0x00F6 0x00F7 0x0173 0x0142 0x015B 0x016B 0x00FC 0x017C 0x017E 0x02D9 - - - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF - 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F - 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F - 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F - 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F - 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F - 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F - 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F - 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F - 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF - 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF - 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF - 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF - 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF - 0xF0 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF - 1258 - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF - 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F - 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F - 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F - 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F - 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F - 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F - 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - - 0x20AC 0xFFFD 0x201A 0x0192 0x201E 0x2026 0x2020 0x2021 0x02C6 0x2030 0xFFFD 0x2039 0x0152 0xFFFD 0xFFFD 0xFFFD - 0xFFFD 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 0x02DC 0x2122 0xFFFD 0x203A 0x0153 0xFFFD 0xFFFD 0x0178 - 0x00A0 0x00A1 0x00A2 0x00A3 0x00A4 0x00A5 0x00A6 0x00A7 0x00A8 0x00A9 0x00AA 0x00AB 0x00AC 0x00AD 0x00AE 0x00AF - 0x00B0 0x00B1 0x00B2 0x00B3 0x00B4 0x00B5 0x00B6 0x00B7 0x00B8 0x00B9 0x00BA 0x00BB 0x00BC 0x00BD 0x00BE 0x00BF - 0x00C0 0x00C1 0x00C2 0x0102 0x00C4 0x00C5 0x00C6 0x00C7 0x00C8 0x00C9 0x00CA 0x00CB 0x0300 0x00CD 0x00CE 0x00CF - 0x0110 0x00D1 0x0309 0x00D3 0x00D4 0x01A0 0x00D6 0x00D7 0x00D8 0x00D9 0x00DA 0x00DB 0x00DC 0x01AF 0x0303 0x00DF - 0x00E0 0x00E1 0x00E2 0x0103 0x00E4 0x00E5 0x00E6 0x00E7 0x00E8 0x00E9 0x00EA 0x00EB 0x0301 0x00ED 0x00EE 0x00EF - 0x0111 0x00F1 0x0323 0x00F3 0x00F4 0x01A1 0x00F6 0x00F7 0x00F8 0x00F9 0x00FA 0x00FB 0x00FC 0x01B0 0x20AB 0x00FF - - - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x10 - 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E - 0x1F 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C - 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A - 0x3B 0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 - 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53 0x54 0x55 0x56 - 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63 0x64 - 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 - 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - 0x20AC 0xFFFD 0x2026 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 - 0x201A 0x201E 0x2020 0x2021 0x2030 0x0160 0x2039 0x015A 0x0164 0x017D - 0x0179 0x2122 0x0161 0x203A 0x015B 0x0165 0x017E 0x017A 0x00A0 0x02C7 - 0x02D8 0x0141 0x00A4 0x0104 0x00A6 0x00A7 0x00A8 0x00A9 0x015E 0x00AB - 0x00AC 0x00AD 0x00AE 0x017B 0x00B0 0x00B1 0x02DB 0x0142 0x00B4 0x00B5 - 0x00B6 0x00B7 0x00B8 0x0105 0x015F 0x00BB 0x013D 0x02DD 0x013E 0x017C - 0x0154 0x00C1 0x00C2 0x0102 0x00C4 0x0139 0x0106 0x00C7 0x010C 0x00C9 - 0x0118 0x00CB 0x011A 0x00CD 0x00CE 0x010E 0x0110 0x0143 0x0147 0x00D3 - 0x00D4 0x0150 0x00D6 0x00D7 0x0158 0x016E 0x00DA 0x0170 0x00DC 0x00DD - 0x0162 0x00DF 0x0155 0x00E1 0x00E2 0x0103 0x00E4 0x013A 0x0107 0x00E7 - 0x010D 0x00E9 0x0119 0x00EB 0x011B 0x00ED 0x00EE 0x010F 0x0111 0x0144 - 0x0148 0x00F3 0x00F4 0x0151 0x00F6 0x00F7 0x0159 0x016F 0x00FA 0x0171 - 0x00FC 0x00FD 0x0163 0x02D9 0x0402 0x0403 0x0453 0x0409 0x040A 0x040C - 0x040B 0x040F 0x0452 0x0459 0x045A 0x045C 0x045B 0x045F 0x040E 0x045E - 0x0408 0x0490 0x0401 0x0404 0x0407 0x0406 0x0456 0x0491 0x0451 0x2116 - 0x0454 0x0458 0x0405 0x0455 0x0457 0x0410 0x0411 0x0412 0x0413 0x0414 - 0x0415 0x0416 0x0417 0x0418 0x0419 0x041A 0x041B 0x041C 0x041D 0x041E - 0x041F 0x0420 0x0421 0x0422 0x0423 0x0424 0x0425 0x0426 0x0427 0x0428 - 0x0429 0x042A 0x042B 0x042C 0x042D 0x042E 0x042F 0x0430 0x0431 0x0432 - 0x0433 0x0434 0x0435 0x0436 0x0437 0x0438 0x0439 0x043A 0x043B 0x043C - 0x043D 0x043E 0x043F 0x0440 0x0441 0x0442 0x0443 0x0444 0x0445 0x0446 - 0x0447 0x0448 0x0449 0x044A 0x044B 0x044C 0x044D 0x044E 0x044F 0x0192 - 0x02C6 0x0152 0x02DC 0x0153 0x0178 0x00A1 0x00A2 0x00A3 0x00A5 0x00AA - 0x00AF 0x00B2 0x00B3 0x00B9 0x00BA 0x00BC 0x00BD 0x00BE 0x00BF 0x00C0 - 0x00C3 0x00C5 0x00C6 0x00C8 0x00CA 0x00CC 0x00CF 0x00D0 0x00D1 0x00D2 - 0x00D5 0x00D8 0x00D9 0x00DB 0x00DE 0x00E0 0x00E3 0x00E5 0x00E6 0x00E8 - 0x00EA 0x00EC 0x00EF 0x00F0 0x00F1 0x00F2 0x00F5 0x00F8 0x00F9 0x00FB - 0x00FE 0x00FF 0x0385 0x0386 0x2015 0x0384 0x0388 0x0389 0x038A 0x038C - 0x038E 0x038F 0x0390 0x0391 0x0392 0x0393 0x0394 0x0395 0x0396 0x0397 - 0x0398 0x0399 0x039A 0x039B 0x039C 0x039D 0x039E 0x039F 0x03A0 0x03A1 - 0x03A3 0x03A4 0x03A5 0x03A6 0x03A7 0x03A8 0x03A9 0x03AA 0x03AB 0x03AC - 0x03AD 0x03AE 0x03AF 0x03B0 0x03B1 0x03B2 0x03B3 0x03B4 0x03B5 0x03B6 - 0x03B7 0x03B8 0x03B9 0x03BA 0x03BB 0x03BC 0x03BD 0x03BE 0x03BF 0x03C0 - 0x03C1 0x03C2 0x03C3 0x03C4 0x03C5 0x03C6 0x03C7 0x03C8 0x03C9 0x03CA - 0x03CB 0x03CC 0x03CD 0x03CE 0x011E 0x0130 0x011F 0x0131 0x20AA 0x05B0 - 0x05B1 0x05B2 0x05B3 0x05B4 0x05B5 0x05B6 0x05B7 0x05B8 0x05B9 0x05BB - 0x05BC 0x05BD 0x05BE 0x05BF 0x05C0 0x05C1 0x05C2 0x05C3 0x05F0 0x05F1 - 0x05F2 0x05F3 0x05F4 0x05D0 0x05D1 0x05D2 0x05D3 0x05D4 0x05D5 0x05D6 - 0x05D7 0x05D8 0x05D9 0x05DA 0x05DB 0x05DC 0x05DD 0x05DE 0x05DF 0x05E0 - 0x05E1 0x05E2 0x05E3 0x05E4 0x05E5 0x05E6 0x05E7 0x05E8 0x05E9 0x05EA - 0x200E 0x200F 0x067E 0x0679 0x0686 0x0698 0x0688 0x06AF 0x06A9 0x0691 - 0x200C 0x200D 0x06BA 0x060C 0x06BE 0x061B 0x061F 0x06C1 0x0621 0x0622 - 0x0623 0x0624 0x0625 0x0626 0x0627 0x0628 0x0629 0x062A 0x062B 0x062C - 0x062D 0x062E 0x062F 0x0630 0x0631 0x0632 0x0633 0x0634 0x0635 0x0636 - 0x0637 0x0638 0x0639 0x063A 0x0640 0x0641 0x0642 0x0643 0x0644 0x0645 - 0x0646 0x0647 0x0648 0x0649 0x064A 0x064B 0x064C 0x064D 0x064E 0x064F - 0x0650 0x0651 0x0652 0x06D2 0x0156 0x0157 0x012E 0x0100 0x0112 0x0116 - 0x0122 0x0136 0x012A 0x013B 0x0145 0x014C 0x0172 0x016A 0x012F 0x0101 - 0x0113 0x0117 0x0123 0x0137 0x012B 0x013C 0x0146 0x014D 0x0173 0x016B - 0x0300 0x0309 0x01A0 0x01AF 0x0303 0x0301 0x0323 0x01A1 0x01B0 0x20AB - - - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x10 - 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E - 0x1F 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C - 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A - 0x3B 0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 - 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53 0x54 0x55 0x56 - 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63 0x64 - 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 - 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - - 0x80 0x3F 0x85 0x91 0x92 0x93 0x94 0x95 0x96 0x97 - - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - - - - - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x10 - 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E - 0x1F 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C - 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A - 0x3B 0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 - 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53 0x54 0x55 0x56 - 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63 0x64 - 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 - 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F 0x80 - 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E - 0x8F 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C - 0x9D 0x9E 0x9F 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA - 0xAB 0xAC 0xAD 0xAE 0xAF 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 - 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 - 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF 0xD0 0xD1 0xD2 0xD3 0xD4 - 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF 0xE0 0xE1 0xE2 - 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF 0xF0 - 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE - 0xFF - - - 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x10 - 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E - 0x1F 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C - 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A - 0x3B 0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 - 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53 0x54 0x55 0x56 - 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63 0x64 - 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 - 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F - - 0xE2 0x82 0xAC 0x3F 0x3F 0x3F 0x3F 0xE2 0x80 0xA6 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0xE2 0x80 0x98 0xE2 0x80 0x99 0xE2 - 0x80 0x9C 0xE2 0x80 0x9D 0xE2 0x80 0xA2 0xE2 0x80 0x93 0xE2 0x80 0x94 - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F - - - - - - - - - - - ]]> - ]]> - - - ]]> - ]]> - - - ]]> - ]]> - - - - - - - ]]> - 1 - - - - ]]> - 1 - - - - ]]> - 1 - - - - 123]]> - description - property - target - 4 - 123 - - - - - - ]]> - 1 - - - - - - - - - ]]> - tag - 1 - - - - - - - - - ]]> - name - - 1 - - - ]]> - name - ~¡߿ - 1 - - - ]]> - name - ~ ¡ ߿ - 1 - - - ]]> - name - <>&'" - 1 - - - ]]> - name - example - 1 - - - ]]> - name - example - 1 - - - ]]> - value - 0 - - - - - - - - ]]> - - 1 - - - ]]> - - 1 - - - 123]]> - - 1 - - - 123]]> - 123 - 1 - - - ~¡߿]]> - ~¡߿ - 1 - - - ~ ¡ ߿]]> - ~ ¡ ߿ - 1 - - - \ No newline at end of file + + + + + + 1 + + + + + + + + + + + + + + + + + -indent: + + + -indent:1 + 1 + 1 + + + -indent:-1 + 1 + 1 + + + -indent:21 + 1 + 21 + + + -buildfile:sample.build + 1 + sample.build + + + /f:sample.build + 1 + sample.build + + + -buildfile:sample_1.build /f:sample_2.build + 1 + sample_1.build + sample_2.build + + + -buildfile:/tmp/a/b/c/sample.build + 1 + /tmp/a/b/c/sample.build + + + -buildfile:/tmp/a/b/c/sample_1.build /f:sample_2.build + 1 + /tmp/a/b/c/sample_1.build + sample_2.build + + + -logfile: + + + -l: + + + -logfile:program_log.txt + 1 + program_log.txt + + + -l:program_log.txt + 1 + program_log.txt + + + -logfile:program_log_1.txt -l:program_log_2.txt + 1 + program_log_2.txt + + + -pause + 1 + 1 + + + -verbose + 1 + 1 + + + -v + 1 + 1 + + + -debug + 1 + 1 + + + -quiet + 1 + 1 + + + -q + 1 + 1 + + + -D: + + + -D:property_name=property_value + 1 + + + + + + -D:property_name_1=property_value_1 -D:property_name_2=property_value_2 + 1 + + + + + + + -projecthelp + 1 + 1 + + + -nologo + 1 + 1 + + + -help + 1 + 1 + + + -h + 1 + 1 + + + a + a + 1 + + + foo -logfile:C:\1.txt -buildfile:1.build bar + foo + C:\1.txt + 1.build + bar + 1 + + + -encoding:Unicode + Unicode + 1 + + + -encoding:ENC + UNKNOWN + 1 + + + -listener:default_listener + default_listener + 1 + + + -modulepriority + 1 + 1 + + + -modulepriority+ + 1 + 1 + + + -modulepriority- + 0 + 1 + + + 1 + 0 + 1 + 1 + + + -v+ + 1 + 1 + + + -v- + 0 + 1 + + + -v1 + 0 + 1 + + + -verbose+ + 1 + 1 + + + -verbose- + 0 + 1 + + + -verbose1 + 0 + 1 + + + /f:1.build + 1.build + 1 + + + -buildfile:1.build + 1.build + 1 + + + -l: + 0 + + + -l:1.txt + 1.txt + 1 + + + -logfile: + + 0 + + + -logfile:1.txt + 1.txt + 1 + + + -logfile:"C:\Program Files\1.txt" + C:\Program Files\1.txt + 1 + + + -l:"C:\Program Files\1.txt" + C:\Program Files\1.txt + 1 + + + -listener: + 0 + + + -listener:libdefault_listener.so + libdefault_listener.so + 1 + + + -listener:default_listener.dll + default_listener.dll + 1 + + + + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 0 + 10x020x030x040x050x060x070x080x090x000x0 + 1 + + + "a b c" + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 0 + a b c0x020x030x040x050x060x070x080x090x000x0 + 1 + + + /f:C:\discriminant.build /f:"C:\first one.build" /f:"C:\Folder checker.build" /f:C:\sample.build + /f:C:\discriminant.build0x0/f:C:\first one.build0x0/f:C:\Folder checker.build0x0/f:C:\sample.build0x0 + 1 + + + /f:C:\discriminant.build + /f:"C:\first one.build" + /f:"C:\Folder checker.build" + /f:C:\sample.build + /f:C:\discriminant.build0x0/f:C:\first one.build0x0/f:C:\Folder checker.build0x0/f:C:\sample.build0x0 + 1 + + + "a b c" "d e f" "g h" 4 5 + a b c0x0d e f0x0g h0x040x050x0 + 1 + + + + + + + 0 + + + True + 1 + 1 + + + False + 0 + 1 + + + true + 1 + 1 + + + false + + 1 + + + + False + 1 + + + 0 + False + 1 + + + 1 + True + 1 + + + 2 + + 0 + + + + + 2019 + 09 + 01 + 02 + 03 + 04 + 1 + %A %c + Sunday Sun Sep 1 02:03:04 2019 + Sunday 09/01/19 02:03:04 + + + + + + + + + + + + + 01.09.2019 2:03:04 + 1 + 2019 + 09 + 01 + 02 + 03 + 04 + + + 2019 + 09 + 01 + 02 + 03 + 04 + 01.09.2019 2:03:04 + + + 1 + + + 15 + + + 31 + + + 1970 + 1 + 1 + 4 + + + 2015 + 12 + 23 + 3 + + + 2016 + 12 + 23 + 5 + + + 2017 + 12 + 23 + 6 + + + 2018 + 12 + 23 + 0 + + + 2019 + 12 + 23 + 1 + + + + + + + + 2019 + 09 + 30 + + + 2019 + 02 + 28 + + + 2016 + 02 + 29 + + + 0 + + + 21 + + + 23 + + + 1 + + + 30 + + + 59 + + + 1 + + + 6 + + + 12 + + + 0 + + + 30 + + + 59 + + + 1970 + + + 2000 + + + 2019 + + + 1700 + 0 + + + 1800 + 0 + + + 1900 + 0 + + + 1600 + 1 + + + 2000 + 1 + + + 2016 + 1 + + + 2019 + 0 + + + 2020 + 1 + + + 1569840495 + 1 + 2019 + 09 + 30 + 10 + 48 + 15 + 273 + + + + + PATH + 4 + 1 + + + PATH!@# + 7 + 0 + + + + + + + + + + + + + + + 1 + + + 1 + + + command_line> + 1 2 3 4 5 + 1 + + + working_dir> + C:\ + 1 + + + working_dir> + /home/ + 1 + + + environment_variables> + var1=value1 + 1 + + + command_line environment_variables> + 1 2 3 4 5 + var1=value1 + 1 + + + working_dir environment_variables> + C:\ + var1=value1 + 1 + + + working_dir environment_variables> + /home/ + var1=value1 + 1 + + + command_line working_dir> + 1 2 3 4 5 + C:\ + 1 + + + command_line working_dir> + 1 2 3 4 5 + /home/ + 1 + + + command_line working_dir environment_variables> + 1 2 3 4 5 + C:\ + var1=value1 + 1 + + + command_line working_dir environment_variables> + 1 2 3 4 5 + /home/ + var1=value1 + 1 + + + var1=value1 var2=value2 + 1 + + + "var 1"="value 1" + 1 + + + "var 1"="value 1" "var 2"="value 2" + 1 + + + 1 + + + 1 2 3 4 5 + 1 + + + "a b c" "d e f" "g h" 4 5 + 1 + + + property_for_process_identification + 1 + + + property_for_process_result + 1 + + + 5000 + 1 + + + + + + + + + my_program + + my_program + 1 + + + C:\my_program + + \\?\C:\my_program + 1 + + + my_program + C:\ + \\?\C:\my_program + 1 + + + C:\my_program + A:\ + \\?\C:\my_program + 1 + + + /tmp/my_program + + /tmp/my_program + 1 + + + my_program + /tmp/ + /tmp/my_program + 1 + + + /tmp/my_program + /usr/ + /tmp/my_program + 1 + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + + ]]> + + entry + + + + entry + + + entry + + + + entry + + + + + Create root folder + + + + Create sub folder + + + + Create folder in the sub folder of root directory + + + + Save in property input for function to test + + + ]]> + + entry + + + + entry + + + entry + entry_ + + + + entry + entry_ + + + + + + + + C:\Windows + 1 + + + C:\Windows! + 0 + + + C:\Windows\regedit.exe + 0 + + + /home + 1 + + + /home! + 0 + + + /bin/ls + 0 + + + + + + + C:\Windows + 0 + + + C:\Windows! + 0 + + + C:\Windows\regedit.exe + 1 + + + C:\Windows\regedit.exe1 + 0 + + + /home + 0 + + + /home! + 0 + + + /bin/ls + 1 + + + /bin/ls1 + 0 + + + + + + + a + 1 + + + + 3 + + + + 3 + + + + + + 1 + 3345524abf6bbe1809449224b5972c41790b6cf2 + 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8 + b32811423377f52d7862286ee1a72ee540524380fda1724a6f25d7978c6fd3244a6caf0498812673c5e05ef583825100 + 786a02f742015903c6c6fd852552d272912f4740e15847618a86e217f71f5419d25e1031afee585313896444934eb04b903a685b1448b755d56f701afe9be2ce + + + The quick brown fox jumps over the lazy dog + 1 + 3c523ed102ab45a37d54f5610d5a983162fde84f + 01718cec35cd3d796dd00020e0bfecb473ad23457d063b75eff29c0ffa2e58a9 + b7c81b228b6bd912930e8f0b5387989691c1cee1e65aade4da3b86a3c9f678fc8018f6ed9e2906720c8d2a3aeda9c03d + a8add4bdddfd93e4877d2746e62817b116364a1fa7bc148d95090bc7333b3673f82401cf7aa2e4cb1ecd90296e3f14cb5413f8ed77be73045b13914cdcd6a918 + + + BLAKE and BLAKE2 are hash functions based on the ChaCha stream cipher, and was one of the finalists in the NIST competition for SHA-3 + 1 + 5e92b21f7cb0b46d06416c314f41c474e2feaf30 + 40a9706556c5b70ef10daae4c519c4fcfdee519b3ded9bc6801730b23f2c1d40 + 1441c65e58b2e9656200df99c9bd1e188a3a4e18e80d0ed9f69d4ce67bde16ef8f726e54800554dda7b29f485e50d0e9 + f22f00d4570b502efe801674f6588ad6926b54ef3503d266224b65c257d1422683bfd4a12470ba3d5cb3c73d5016a5a6f1fb96a13b7f0a84d03777bb18e6e859 + + + 0 + 1 + af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262e00f03e7b69af26b7faaf09fcd333050338ddfe085b8cc869ca98b206c08243a26f + 5487789e8f660afe6c99ef9e0c52b92e7393024a80459cf91f476f9ffdbda7001c22e159b402631f277ca96f2defdf1078282314e763699a31c5363165421cce14d + + + 1 + 1 + 2d3adedff11b61f14c886e35afa036736dcd87a74d27b5c1510225d0f592e213c3a6cb8bf623e20cdb535f8d1a5ffb86342d9c0b64aca3bce1d31f60adfa137b358 + ad4d79f97b47c3d5e79f179df87a3b9776ef8325f8329886ba42f07fb138bb502f4081cbcec3195c5871e6c23e2cc97d3c69a613eba131e5f1351f3f1da786545e5 + + + 1023 + 1 + 10108970eeda3eb932baac1428c7a2163b0e924c9a9e25b35bba72b28f70bd11a182d27a591b05592b15607500e1e8dd56bc6c7fc063715b7a1d737df5bad3339c5 + 6778957d870eb9717b57ea3d9fb68d1b55127bba6a906a4a24bbd5acb2d123a37b28f9e9a81bbaae360d58f85e5fc9d75f7c370a0cc09b6522d9c8d822f2f28f485 + + + 1024 + 1 + 42214739f095a406f3fc83deb889744ac00df831c10daa55189b5d121c855af71cf8107265ecdaf8505b95d8fcec83a98a6a96ea5109d2c179c47a387ffbb404756 + f6eeae7883b446b70ebb144527c2075ab8ab204c0086bb22b7c93d465efc57f8d917f0b385c6df265e77003b85102967486ed57db5c5ca170ba441427ed9afa684e + + + 1025 + 1 + d00278ae47eb27b34faecf67b4fe263f82d5412916c1ffd97c8cb7fb814b8444f4c4a22b4b399155358a994e52bf255de60035742ec71bd08ac275a1b51cc6bfe33 + 2b0ef84b409108cda080e6269ed4b3e2c3f7d722aa4cdc98d16deb554e5627be8f955c98e1d5f9565a9194cad0c4285f93700062d9595adb992ae68ff12800ab67a + + + 2048 + 1 + e776b6028c7cd22a4d0ba182a8bf62205d2ef576467e838ed6f2529b85fba24a9a60bf80001410ec9eea6698cd537939fad4749edd484cb541aced55cd9bf54764d + 063f23f6f1e32e12958ba5cfeb1bf618ad094266d4fc3c968c2088f677454c288c67ba0dba337b9d91c7e1ba586dc9a5bc2d5e90c14f53a8863ac75655461cea8f9 + + + 2049 + 1 + 5f4d72f40d7a5f82b15ca2b2e44b1de3c2ef86c426c95c1af0b687952256303096de31d71d74103403822a2e0bc1eb193e7aecc9643a76b7bbc0c9f9c52e8783aae + 98764ca468962b5c2ec92f0c74eb5448d519713e09413719431c802f948dd5d90425a4ecdadece9eb178d80f26efccae630734dff63340285adec2aed3b51073ad3 + + + 3072 + 1 + b98cb0ff3623be03326b373de6b9095218513e64f1ee2edd2525c7ad1e5cffd29a3f6b0b978d6608335c09dc94ccf682f9951cdfc501bfe47b9c9189a6fc7b404d1 + 20258506341a6d802857322fbd20d3e5dae05b95c88793fa83db1cb08e7d8008d1599b6209d78336e24839724c191b2a52a80448306e0daa84a3fdb566661a37e11 + + + 3073 + 1 + 7124b49501012f81cc7f11ca069ec9226cecb8a2c850cfe644e327d22d3e1cd39a27ae3b79d68d89da9bf25bc27139ae65a324918a5f9b7828181e52cf373c84f35 + b639b7fccbb985b6f2fa56aea0c18f531203497b8bbd3a07ceb5926f1cab74d14bd66486d9a91eba99059a98bd1cd25876b2af5a76c3e9eed554ed72ea952b603bf + + + 4096 + 1 + 015094013f57a5277b59d8475c0501042c0b642e531b0a1c8f58d2163229e9690289e9409ddb1b99768eafe1623da896faf7e1114bebeadc1be30829b6f8af707d8 + 5c298f4f0ff4d9438aef948335612ae921e76d411c3a9111df62d27eaf871959ae0062b5492a0feb98ef3ed4af277f5395172dbe5c311918ea0074ce0036454f620 + + + 4097 + 1 + 9b4052b38f1c5fc8b1f9ff7ac7b27cd242487b3d890d15c96a1c25b8aa0fb99505f91b0b5600a11251652eacfa9497b31cd3c409ce2e45cfe6c0a016967316c426b + d26f619eab5d70af9a418b845c608840390f361630bd497b1ab44019316357c61dbe091ce72fc16dc340ac3d6e009e050b3adac4b5b2c92e722cffdc46501531956 + + + 5120 + 1 + 9cadc15fed8b5d854562b26a9536d9707cadeda9b143978f319ab34230535833acc61c8fdc114a2010ce8038c853e121e1544985133fccdd0a2d507e8e615e611e9 + a0ba4f47915f49e53d721816a9198e8b30f12d20ec3689989175f1bf7a300eee0d9321fad8da232ece6efb8e9fd81b42ad161f6b9550a069e66b11b40487a5f5059 + + + 5121 + 1 + 628bd2cb2004694adaab7bbd778a25df25c47b9d4155a55f8fbd79f2fe154cff96adaab0613a6146cdaabe498c3a94e529d3fc1da2bd08edf54ed64d40dcd677764 + 7eac51d8277d70219a9694334a68bc8f0f23e20b0ff70ada6f844542dfa32cd4204ca1846ef76d811cdb296f65e260227f477aa7aa008bac878f72257484f2b6c95 + + + 6144 + 1 + 3e2e5b74e048f3add6d21faab3f83aa44d3b2278afb83b80b3c35164ebeca2054d742022da6fdda444ebc384b04a54c3ac5839b49da7d39f6d8a9db03deab32aade + 156c1c0311e9b3435cde0ddba0dce7b26a376cad121294b689193508dd63151603c6ddb866ad16c2ee41585d1633a2cea093bea714f4c5d6b903522045b20395c83 + + + 6145 + 1 + f1323a8631446cc50536a9f705ee5cb619424d46887f3c376c695b70e0f0507f18a2cfdd73c6e39dd75ce7c1c6e3ef238fd54465f053b25d21044ccb2093beb0150 + 15532b108313b5829c3621ce324b8e14229091b7c93f32db2e4e63126a377d2a63a3597997d4f1cba59309cb4af240ba70cebff9a23d5e3ff0cdae2cfd54e070022 + + + 7168 + 1 + 61da957ec2499a95d6b8023e2b0e604ec7f6b50e80a9678b89d2628e99ada77a5707c321c83361793b9af62a40f43b523df1c8633cecb4cd14d00bdc79c78fca516 + 5b863893f6d38b02ff7236c5a9a8ad2dba87d24c547cab046c29fc5bc1ed142e1de4763613bb162a5a538e6ef05ed05199d751f9eb58d332791b8d73fb74e4fce95 + + + 7169 + 1 + a003fc7a51754a9b3c7fae0367ab3d782dccf28855a03d435f8cfe74605e781798a8b20534be1ca9eb2ae2df3fae2ea60e48c6fb0b850b1385b5de0fe460dbe9d9f + 9b0d8db4435da75c601156df9d047f4ede008732eb17adc05d96180f8a73548522840779e6062d643b79478a6e8dbce68927f36ebf676ffa7d72d5f68f050b119c8 + + + 8192 + 1 + aae792484c8efe4f19e2ca7d371d8c467ffb10748d8a5a1ae579948f718a2a635fe51a27db045a567c1ad51be5aa34c01c6651c4d9b5b5ac5d0fd58cf18dd61a477 + 78566b797a8c67df7b1d60b97b19288d2d877bb2df417ace009dcb0241ca1257d62712b6a4043b4ff33f690d849da91ea3bf711ed583cb7b7a7da2839ba71309bbf + + + 8193 + 1 + bab6c09cb8ce8cf459261398d2e7aef35700bf488116ceb94a36d0f5f1b7bc3bb2282aa69be089359ea1154b9a9286c4a56af4de975a9aa4a5c497654914d279bea + 60bb6d2cf7225a2fa0ff5ef56bbe4b149f3ed15860f78b4e2ad04e158e375c1e0c0b551cd7dfc82f1b155c11b6b3ed51ec9edb30d133653bb5709d1dbd55f4e1ff6 + + + 16384 + 1 + f875d6646de28985646f34ee13be9a576fd515f76b5b0a26bb324735041ddde49d764c270176e53e97bdffa58d549073f2c660be0e81293767ed4e4929f9ad34bbb + 39a529334c57c4a381ffd2a6d4bfdbf1482651b172aa883cc13408fa67758a3e47503f93f87720a3177325f7823251b85275f64636a8f1d599c2e49722f42e93893 + + + 31744 + 1 + 62b6960e1a44bcc1eb1a611a8d6235b6b4b78f32e7abc4fb4c6cdcce94895c47860cc51f2b0c28a7b77304bd55fe73af663c02d3f52ea053ba43431ca5bab7bfea2 + f5e9d7121770d88f70ae9649ea713087d1914f7f312147e247f87eb2d4ffef0ac978bf7b6579d57d533355aa20b8b77b13fd09748728a5cc327a8ec470f4013226f + + + 1 + + + 123456789 + 1 + 2639f4cb + cbf43926 + + + The quick brown fox jumps over the lazy dog + 1 + 39a34f41 + 414fa339 + + + 0 + 1 + f71837502ba8e10837bdd8d365adb85591895602fc552b48b7390abd + c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 + 2c23146a63a29acf99e73b88f8c24eaa7dc60aa771780ccc006afbfa8fe2479b2dd2b21362337441ac12b515911957ff + 0eab42de4c3ceb9235fc91acffe746b29c29a8c366b7c60e4e67c466f36a4304c00fa9caf9d87976ba469bcbe06713b435f091ef2769fb160cdab33d3670680e + 6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7 + a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a + 0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004 + a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26 + + + 1 + 1 + bdd5167212d2dc69665f5a8875ab87f23d5ce7849132f56371a19096 + 5d53469f20fef4f8eab52b88044ede69c77a6a68a60728609fc4a65ff531e7d0 + 127677f8b66725bbcb7c3eae9698351ca41e0eb6d66c784bd28dcdb3b5fb12d0c8e840342db03ad1ae180b92e3504933 + 7127aab211f82a18d06cf7578ff49d5089017944139aa60d8bee057811a15fb55a53887600a3eceba004de51105139f32506fe5b53e1913bfa6b32e716fe97da + + + 69 + 1 + bb41c858301cb57230fd85083ba5c76044282170123a990f461e3b14 + ed379e9012f1d3a4fef5096688a2557b3ceb68c619245bffcf05a14a5a846fd9 + 71007b69c9b15fa519af8cab73514a8b92534513aa19153e7723e56ab54c34bce618bafef9ab92d13298bd35cb6e692a + 65e34948011bf0715855139bd03afcd01c10a0cba4a6c237cf38a79977080eace8f47e1e9ee14e7d60dcc2a9fe2e9dab47da5bd0ea1cd3932fa788f07e04d7a0 + + + 70 + 1 + c885e6c9be4a56615adc88657907b0449ff80a0b14459096caa14999 + 97a26b0e8066f35d400b7f12a6ae62a290bc1ca68660b4da8bf17afad6b8c948 + f82eab30f732330e9692860682ea083586216ee761ea08c014c8a8dd2dc08fc9901942f311f63f63bf3ab8b4dab14975 + 351164e46da292fd3d75132545401498d8983be9d143732de2df21fbf975a5e2c81584d90a773d34d7895d4cece328637ad2ffa973e21d4b6d03f39141cf44c8 + + + 71 + 1 + 5e31d4bc8904e6e77531e6b975d3dcdd4330c03620e5204bc047ce2e + 881ad9ffbd7f090efa51cbdfe93da23a0401f4446f7adf150d1c226851cbfff2 + 4bb4db01ac1c1d1a5de657436aca5275e4cae772bd6ab9b358e0ed094202be9600724a5bdfef0461ba7f1dc2427cf155 + 3ccc850d53a1287af7b4560b2ef0d43eb5d9a80d62a0e9cf1dbc040135921104d4395168e90bfc871773ebb34bca1bd67056e1cc7dc7a48ff7c3167d389f117c + + + 101 + 1 + 03b96617edf75c33e4949e2b462eb75828546a2eb8308bdd4c0859cf + af504dd36feb666b16fe553116adbdd604e449ca783e54a83171aee7ddc7e7b1 + 1c3a5ccc5dc4030ba16305a85f59dced8cb5023db4479e8b3749a7004ae77bb18996931af4c16409efcc0c72caa4c1a1 + c8560c1f73d8f309676b71c239c06fcf16a7a8fc710c593b0f83b32606d6d7c85b66f9ad987a4c24bad2f4a03a20da89d5f1f0987f60fc97f40f306e221edbef + + + 102 + 1 + c556db7b33e53bf1736d9bc84f30aa936a8ea4afcc590d70fbe647ab + 986b81944604ef3a1f26032a04537777c0ecd1cb66b37e3ca6e9b108befaf56c + ee8a6c983daaec5976cb0ed4446494d348d0d571eb4c77fd8cf7eebdaa0733f96de2bdd8cdd0c70f5fa4391a336107b9 + 9d6df09db9028fb57b45e346886fc0a6ba37d81607bf21b4c7e5ef811197e01eefd4be9c22e68a1b7c714f8f7924f2ea699b0e83a3c95379f7e8dd0ce20ca8b6 + + + 103 + 1 + 8b59fefcaf88187d29eb7b887f5c066475168a4348deac4f34993d63 + 120a055c592d237c0f535eebfc05673374fe4a50e1330293ef2c1ab611e0d0ba + 1f91ee551ad18f268876d1fc262f137fe196580216c5193819a95ec5222537d2a658dd129c3d8080e65ec7460f1f4704 + c2204bc64deef9249ab2e29187e31db863002b0ab130c1189d76d8e41f40aab95606b1cc3955788fd6e377d438c2c88c4aecf8f2096a5c8d214863cfbaa3ef5e + + + 133 + 1 + 67dd1365e9e2ec75f4d96a8460a0a9bf686827920e2b7fbbb0ef2925 + 721f0e936b3b93c0384f970c07680a8a6293e5012295e83615ea4657ed5d7e17 + 72d7f791dd6b7e70cb118634b458bf6977a64b1a6c27a136464ae12db9e7ecc5cb2d7d73c8faf07d4d93d1b2e2f1c0da + df7f2a48b2d154de7d3adf710cdd3d1528ebcb06371a72ae607e6e6836163b179800e1ef1ba08649ed405637c6617d6600b0afcdfd7fd9e39a1240f45c21ff96 + + + 134 + 1 + 6d8a43354b6c4e4e28e93ad60e16df666eeca61b360f718009c445a1 + 644e15224f5597351aef5c4bdd22b27ca0c19db2244431534c2a4a0bebfdf39c + 0dd4000d8a25d0cffdfe2b7151fc610cb5bf25d9249d855ce8d0d647d2151235a12092a75233efa7820fcdfedc59041f + 76dc7b65f9c314c810c75a7c7a520ca9bc750d14fb4984f982e86e4bb1e46f3df3ce529bfa7b52366884ec66a1fb6dcdb9ec04a72d9405e0af9fa1bde9054a32 + + + 135 + 1 + 3174e5126280625ecdfdb238d6a10d1c8b071031870ed197640cad90 + fded8fd9d6551c601eeb3b7c6bc5e5cfd8aad1d015b7e9aaa9c9b9475231d5e2 + 25d2be1f5a681f8135992e0cc18a7b0758d1a880eb3c64d9c722f80d68b744bb3a89c223a0c38164cf4a423f91f8a533 + d942df0df09ac042cd3b641144c98d8fda0980bb037fc5c0e7f2e9a073b073dc4bb8a8c1f4cb5b45f5805c6523741ed0571d6779b15829b2faa280fc60b50645 + + + 141 + 1 + a8df4dbdc4c5d535eb3f590dd7e097e0b1b3ace931447d987ac25e94 + 4134fa637cc87ac52320f311f4a681ef740b58da8ce2c09c721eedd720179c4f + cb6b185e7f5e232db435f2d02f6e8bf16db60f895fc92cbc7fbad356807c5d693853fe638305c4d163d7b35d51b9041c + 3e92887ff9919469c7927cfc56523492abdcfda14d7fad2bf1de875fa05e2416674ae1793799b7a0703d4da88cf67d09ac64004dc4e332adb6b199ba6ee52479 + + + 142 + 1 + 4353e7ed38eb9cc41abbf0709c6ab707de70d759e5d6eedf09043fd0 + 4996d371abd506e72178b4cbea8e9f5ad781a5a566543d97f89a4efb13d5bb5f + abe7a3a2309b13851157043658589d3f011cf2b58ded164cefc56654146f1884ed73d195c5176ea879f7821e9c332b3a + 64e5a4e32097cf9eeb8170b582503af020076f2856d7e67c0acb4c53c5f7fcb6bed9e330bcaac7c9229d7875efbe233877d5d3a43a25376eaf7804320599676e + + + 143 + 1 + 64d0e8a1be3cf30ef6727b30a6e428f7f068d44634c943d277ad8e7f + 295fef4d46110ee21fba0d1798a1bb7c1bbc88306bc9b7661b18ace7170f02ae + f25214f92d3b1ccc162c46a74ad8fafd33e00abdcb3048744d93d36bc77f2796f92d91cea8946b357f14f249792dd8de + eb9748309c6b70ffe82820052ad26ea99f43968d2af359adc804b2a76741a62ea8d710f018ea113c2259d0bd6687e3838602ae6c1dff727ae985f059141c7217 + + + 1023 + 1 + e7d72a8635ec1a6b177046d8f98c60bb934204fc7a6990469bed72cd + 3456dac4a1209693b8c2bd2cd27fc64c330ce283b8d43a0d9662761825865cbc + db04f83cdfeb0bc711e9e2aca51f838e8dd725155daa64cbd3b913d40e56475ecc7b4ecab75b771a5f7ccc365ef3a5ae + 703be67f6d9c1a2d99b1995e60744a05097ddde919f9a4eb4ee3fe0088c9e5a502daa96064f284fbda40d1b22cc70d273b46bb4e4f48fe0e5a2d29f296bfe8a6 + + + 1024 + 1 + 59e82bec68b80a525fd12a0408580ecda62ee6d4c8b12d6529ce0c20 + ba7f1834cddbba9f82cd4dcf7a106bb2e615fec90020f5a5de8efff8d49198b6 + 885b25cbe374a0e76d495caea95475a2b870909abe434035316d4c60dcade94b8b18b18102059034de194e9f1e682811 + 8f0c52262455dca2c7d7a6157bbc545cb34cea699290735fbc46b5c83173a458d53666e2137eb66e3b672070a97134775e3006a8ee542585ddb54183932f768d + + + 1025 + 1 + faa2566329eef816510312ec08e329cdc855e96a440e47e92da4cc92 + 413cf357775aef534fcd49da91a30f7877b50bbd924a20649315a4827f79cac0 + d00dfd2110cb761ca3f3f3195037e89b29660805e6ce37e9f3164a22517e1c1ac937adbd38c78ad568ada4340f039e58 + 4d77323a341a3c8edd736ed718cb07deb66bcc5317dbc6f73da4c686dcec8440e414a2ed46ed5219cc226160b2416b276d9d9d95ad83c4c9e301397c89e37864 + + + 2048 + 1 + f761d1bb315dd7d743de1e76b6fe0e8a9f32c74be8819d2f09b49349 + 51a0283a8332e99679957152f59acd063596f607f567053ef538e64c9f75ecf2 + 44f9abfc39f11d63ab2e92f5b2c62b770a76bcedee29e2674c658088c39e383c03ed2c3d9746af7aadf76c0cc18144f9 + 746a42aeef3cdf3f3deb899628f20c36c92e2268fb0ad45883cfbfe74394ff84a15a6f421d26f46c231a911ddae489049019c610e2c0a309e4b9704e57035cd8 + + + 2049 + 1 + 13d59fd552e8a83f759fa10b443d560e36f9b32d3d54553690036282 + aee1e49906909f36267064b9e924a42cc84832c16f2b453ce3dc90ed09431ee9 + 5e3347f462f9514df49d6d6d9f2df802144318dcb22fef6add07ddfb46f72bdf1c9bb9323bcaee870039af86978f1068 + 0354e1653a3c8f4307f4d31f83e84f532598b69211618a73088969768ed995a718fb1da5feaddb4ad79600ee76efe2a52b58bd33029ee291af5419f392f8c16e + + + 3072 + 1 + 7e28e44f1df828b246b1952d24c7de5faa98d139a9daee2e491d6edb + 3d6f9314a37c0dec3cd87ccfb4b5d515c3449e40c1640c0123e511134fd3371c + 49b4adb6da7229dd2803835c7f3846376742ec22728aaf9117ebe4f1ed9812409781400c206f0132b1d992d2794c3ec6 + 776f1df7cbffdff1df64d2fdcb3b3a238667916f901b27b5cddc54f2664572ac6326459b44ab1d28dd023b2a44a868cb6a950ceec4f4720c58cc2c8ad03f5c55 + + + 3073 + 1 + d5756b31553455e694bde2514720f02e6eff5004df280db6741731c0 + 5f24381c43d4473a3a65dba2430023c3415eb682d7ab0baffec2576c6e20649e + 2d9861baf20a6d4d094c8eb8e2f4462492856567fafc8e23b5d9bd696098561315202928c5bae4dd73dc0ed0dce7bc6e + b53488fe0c03f3ddd91cf153e7cc33701cc4789bb8a02c3a4c8215d6abab0589dffc7778058b606c20725cca5fe1b3c480269eaa43677eb1b5ba84c9ee4c6ef1 + + + 4096 + 1 + e710eeadf70563847a754d60ba7c97362b08b0eec91e08b7f628dce6 + 40e655a0042c7fc243710579c0d6fad05daceba7d474de35cccb17d194c2cda2 + de7e4e4470424afae94fea724569c73744f766215c48e5314dd0b2256f8c2a5848bbe3f341f32a59e6b4d055f2fde812 + ac8fc5c0a7dc20b9234524accd6000bcafbad2850a66455600873c13d1cb6875824f6888630829896eb411ee4973896e0fb6487d8be89fcc3dfd9eed6c93fe90 + + + 4097 + 1 + ed37079a71b014db056fba28be20e275bef7002152685f55563ee7ba + c1743d3e79e9a1516251b027c4210f8b592630bfc9456d4ce36b17e9908bf8fa + 958c222c76083e19e2e64edf9b71a73844090592f6282874dcad59ff94c078a315c5f16f625643a8c052f306cfc280fb + 61d8587ac16b5f06e2010ab90e4e369d609ba8e995cb5a65098ef4d681d4c11ef46f1a62bb897981f5e8bce8496645885302ca8269a4042c337e7564e4075bf0 + + + 5120 + 1 + c5bb921beb40e901bb6a8b9ff87f54acd102b31617b69dae27d80edc + 791faf2ff8ab27eb6ea5b860baa8db20336213bbe1da02e050f4da3451d868e4 + f4edc71aa7bcf93bf466b278a378711b4333ab7c8bf6a0b597d93a6068785ad95a390b6d7e0cf21ee611e0fe5cb4b620 + 161e9fe6165a4e9cc91779fe436e5b8e59d11bfb2328bdf389de7cefa2d613f36d8c4249400ae1b2bfed5ebbb52ab2c164b7498a7c187d4f52e7d98a7ef77ffb + + + 5121 + 1 + cefb803e3da97cca87920e3142f84f9601eb3f1a68383d05c9c71e09 + d07ffdb737ad569dc7f648f0bc6dd0968475a7c72dc8aaf8a40184829d9e276d + 24395363a35adc5c9cc1fab5346afdacc0432727c3ff6b5456b966fd8b168ba0c6151d4853959175c7fb83845fc5c430 + ff6253c8686d52864b21b6fac5bd91dcadddb30daf39e8a70f07c26904c49889f32449e5cbeb8781c21dff89dce285783bba9df10d6c86fcd24064ed970da13d + + + 6144 + 1 + e46947a65472b14a893436f8d8aeb434a324470d21b85993122a25d3 + 2d31fe5b4080fb6a965196936406cb33d3a929030ad9b151dde066e533bb4b99 + 891902665b409c474d75a53985a5e5e324cb05f95edeb0e8df714a8895353faa5c8aa88849189aa8a78328ab899a70d9 + 2cfea6de3c394e88ffbc2236d8b87381cb14e6e5a23235e5d03fa2f395383dd239df59807edd148d39bb271d64e1ab6f7746a9bbd16e553a538ea32bebd3bfee + + + 6145 + 1 + 9eaa48302221fbd4458032b63c2a0fd656f66baf06be0e727c56410a + 2277dd53396cef38fe8aa8716739e7d2f4fa33a55c697f21409e96715eca91dc + 159b07f2aeac0a2aee7f65a367003acfd3f42efce3799170bc8cf29d2bad1eeccdae3b35b86d5c95b980d5d026e68153 + d5fdcdb2a4cf311ab061ccf062a62bbb2802103f30b87e077ef066f5b20e01b32e4a7443d5bfa518767c92c76b0835a3bebd013d5749fd5ab9586b72824b5a1f + + + 7168 + 1 + 2e4f3b82daecda1e8f546590c2006625001fd3802b04781233355d38 + de9a4c24206979eea656585ffc5877faf6203b1bc90a4fbde802f05c36d44c73 + b1bd8d0584707f9cca3adc794da83a54d268b0512e755d8e9eb7e8f209189de3447fb14cf3e3b0e34634c62b96e09d80 + 3d29a32838788f1068a017d30abbde48438e200164d16810cfc5e72131ca0493c3f147d77e58b594f3dc6dce0fe6d157edb37ddd16fbafa8892d03dd3b7438a6 + + + 7169 + 1 + ce0dc42b066c8d4aa4c412e625896c3253a371fba7647049689d269e + 1c76a266bcfc80883d589fbd593ccd628d0b368ecbb40bd9e932d9def73598c9 + bd3c93282ea84a25b0096468012511b8b2f8217e185d63800511048bd0da36c0d8e1af3113a68f68f0fdaca07fb4fe4f + c04d24a5098866a4689f8dea4bae1ca23a86ae20c38550b3ff42694730fcc71fce3a13e6eddd1e948cc5f42a6b479612ec8f5055eb541de81a72e4cf99c35a3b + + + 8192 + 1 + b6b0c36fe2b845f393199b5896c06ea2203535fa40f61454f66be7ec + ae1e2d41aabdd5f20028d82dbd03bb02c64de6021b9c5afb5db3bec5b415528c + dfd45758ce0596a69b5ebcfbd41fd82ab73336b0798882a45b0fa19bdbc31cbfd2dbfc21b599d7baaaf0aa6db172d384 + 54944f3d94baf90603f2d2536d7612aced75dee0e8f1e9e70490729f33539e87a87c1db5eb12779802e47a9a2c4629f00d6363ea282bf876c28779140ab73d17 + + + 8193 + 1 + a7232b923c520ff46e1d3cf1c21fb712308b37c54ddf49b8a57618b0 + 91cbc140c95662bd52cfb156b36fe9eed52f264dd7babde25cb5e84837633b88 + d68d76b03025d73fad0495718910f5167bca3667e7dcd90a91f721ec8d28f79d8ae7575db6ddc0d889b50619c3aed756 + 757d20247c70b52e77308ef1bc1eb3dcb5ccd04f9e22c62fb2c62ad49350f336a08d126e9d00edb85af69ff92524b477b9f515c4ce8742cfa2a9c6b243cbe6a0 + + + 16384 + 1 + ee18735acfa752902c13bd2fa0472b2fb11687f80bd1b717edd92a5e + 8f8eeb8c5f4c7ca72654a2f6b8ee7c84e0367846655af46494e3e98f91208a43 + 6cbb72f240f59e8acef6e7995430e27d277b0c838f6fe2873ce8ae2ca05ce74c66d89d1a9b974026de3d8694be65ac73 + 7e94924b09f131d8e32a1c6ed0f5340e55aae3bbfd3619cd297acf40730d1ebf92acd763a06a25d58e94d214cacca52542768e78851ba1d82f56c0154d2fd5c8 + + + 31744 + 1 + 314056dd3d94ca15731815ab1b85322ba07ff26e90555d435822e1af + cbc6fd3ce90dafe74a83bb29674e48082f59efd400b989214a63e85ae1984d43 + 93115f5c2f020a9c6cd4bf4a20b09abf0096b78b0e2646e64aeee0d87498d2b2cdb5458daf0253273942499a757cf352 + 827727b142e9a09e066f3847c800912b7d76c26cc22874e92b359880b4dc2f593cf13c473004d0033b7afe218db7b58792b5545c812baeaf6d096cbe9f36ded2 + + + + 1 + f71837502ba8e10837bdd8d365adb85591895602fc552b48b7390abd + c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 + 2c23146a63a29acf99e73b88f8c24eaa7dc60aa771780ccc006afbfa8fe2479b2dd2b21362337441ac12b515911957ff + 0eab42de4c3ceb9235fc91acffe746b29c29a8c366b7c60e4e67c466f36a4304c00fa9caf9d87976ba469bcbe06713b435f091ef2769fb160cdab33d3670680e + 6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7 + a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a + 0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004 + a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26 + + + The quick brown fox jumps over the lazy dog + 1 + 310aee6b30c47350576ac2873fa89fd190cdc488442f3ef654cf23fe + 4d741b6f1eb29cb2a9b9911c82f56fa8d73b04959d3d9d222895df6c0b28aa15 + 283990fa9d5fb731d786c5bbee94ea4db4910f18c62c03d173fc0a5e494422e8a0b3da7574dae7fa0baf005e504063b3 + d135bb84d0439dbac432247ee573a23ea7d3c9deb2a968eb31d47c4fb45f1ef4422d6c531b5b9bd6f449ebcc449ea94d0a8f05f62130fda612da53c79659f609 + d15dadceaa4d5d7bb3b48f446421d542e08ad8887305e28d58335795 + 69070dda01975c8c120c3aada1b282394e7f032fa9cf32f4cb2259a0897dfc04 + 7063465e08a93bce31cd89d2e3ca8f602498696e253592ed26f07bf7e703cf328581e1471a7ba7ab119b1a9ebdf8be41 + 01dedd5de4ef14642445ba5f5b97c15e47b9ad931326e4b0727cd94cefc44fff23f07bf543139939b49128caf436dc1bdee54fcb24023a08d9403f9b4bf0d450 + + + 786a02f742015903c6c6fd852552d272912f4740e15847618a86e217f71f5419d25e1031afee585313896444934eb04b903a685b1448b755d56f701afe9be2ce + 2fa3f686df876995167e7c2e5d74c4c7b6e48f8068fe0e44208344d480f7904c36963e44115fe3eb2a3ac8694c28bcb4f5a0f3276f2e79487d8219057a506e4b + 78a9fc048e25c6dcb5de45667de8ffdd3a93711141d594e9fa62a959475da6075ea8f0916e84e45ad911b75467077ee52d2c9aebf4d58f20ce4a3a00458b05d4 + 45813f441769ab6ed37d349ff6e72267d76ae6bb3e3c612ec05c6e02a12af5a37c918b52bf74267c3f6a3f183a8064ff84c07b193d08066789a01accdb6f9340 + 956da1c68d83a7b881e01b9a966c3c0bf27f68606a8b71d457bd016d4c41dd8a380c709a296cb4c6544792920fd788835771a07d4a16fb52ed48050331dc4c8b + 965f20f139765fcc4ce4ba3794675863cac24db472cd2b799d035bce3dbea502da7b524865f6b811d8c5828d3a889646fe64a380da1aa7c7044e9f245dced128 + ec295b5783601244c30e4641e3b45be222c4dce77a58700f53bc8ec52a941690b4d0b087fb6fcb3f39832b9de8f75ec20bd43079811749cdc907edb94157d180 + 61c72f8ccc91dbb54ca6750bc489672de09faedb8fdd4f94ff2320909a303f5d5a98481c0bc1a625419fb4debfbf7f8a53bb07ec3d985e8ea11e72d559940780 + e59b9987d428b3eda37d80abdb16cd2b0aef674c2b1dda4432ea91ee6c935c684b48b4428a8cc740e579a30deff35a803013820dd23f14ae1d8413b5c8672aec + cd9fcc99f99d4cc16d031900b2a736e1508db4b586814e6345857f354a70ccecb1df3b50a19adaf43c278efa423ff4bb6c523ec7fd7859b97b168a7ebff8467c + 0602185d8c3a78738b99164b8bc6ffb21c7debebbf806372e0da44d121545597b9c662a255dc31542cf995ecbe6a50fb5e6e0ee4ef240fe557eded1188087e86 + 75351313b52a8529298d8c186b1768666dcca8595317d7a4816eb88c062020c0c8efc554bb341b64688db5ccafc35f3c3cd09d6564b36d7b04a248e146980d4b + e3128b1d311d02179d7f25f97a5a8bee2cc8c86303644fcd664e157d1fef00f23e46f9a5e8e5c890ce565bb6abd4302ce06469d52a5bd53e1c5a54d04649dc03 + c2382a72d2d3ace9d5933d00b60827ed380cda08d0ba5f6dd41e29ee6dbe8ecb9235f06be95d83b6816a2fb7a5ad47035e8a4b69a4884b99e4bece58cab25d44 + e55fd611a16696f8295ea5120a151e312e5dfb1488ac74be64118ffe1bc1d539e725ad0440e5213de297ba435d381c66edf88eebf28b8d640e31103842d3be29 + 8d1090909017add40e749df2d0ebac43273d6fc816bc4ffaf2a6dfabe4206dea13677d2002399e4a38e700d8083db4af8341ee9b3a5147110b6a963a3894e4e2 + 7a9e5283a15d13b995755360fde4c65c2ae1bc0cf33e8db2ce8416e5d10697c73fc4b2622a29b938a1faec43d931b02e71ad8635e071265633643a9d9396ec28 + 84ef376f8080d5d19a6914c9b8e8eaf71b3f716f5b4f0da4fdf81b6c465a5656e01b52807011e1fce05e77729aae5422c6424fe241f7ba93da39456e5c5448d9 + 146560fd774a01704fcce96f5f9b4b042ae43c928ad6546fb070b0ec18d2a4ac592578af038a1f6c5b79144fb16a0c6428999d518384d8349a3ec3707aa50ac2 + 6a4fd5fd8cc0a8e717b28757c896096b0452750684cf7c6c3636f51a98beb32c88f32c9ed7140f90a2cdff2fc4ff49bcaa257f14a6bf6f926530cb47cc7aa340 + 8f204a6e0204733471290db377aff78f069bc2d3d943de81f9a0b71764204c71fb3b1c09a3cd7f3b9f290b7325afb591597ebebc853657acff0fdb242f745d16 + c7a3d6a53bd11772ecf077c1dc9633a39c6fe691ec07a530e0e765c0a9d5a01a16f00995536578b83e54c2821766ac7ac6ae86e22269a5d14208ccac954cc95f + a1aca2bd515e5a87ed22476d9209f748754ebaeddef9cd1e1d57c12cc4b9029342cb74899a9f23cfece0ee8be2fd86e9e72a9289921231a6e40883d01694e0dd + c4ce856743cab7efd10591a0b43e0049dee967baaf0ac042fe571a62b01687c99ac345fd6bb3a5ffec83b31f96f92bd00337a59bb6f066696c2968e624461644 + 92fecb457c0e6c3de55bf61fbabdcf805191fd53aa8d46efbf7a4e76828ac79cd10b5a00aab74e3c9c5bc053cfb742e8170604a85087bf9aa634729b2a7939c6 + 71b0c49f685263009535c8d90d3cb3983eb39840f5b6e32072ac239f2a5f7fc72d1ef13a5a765a82f1485dfe63b0f5145726940848ca2390a57dc5e719f17b4e + 39b663dd381569a0b708005e423b1813dd90e2a0b3716995a7366ce226f2d624c5826aa40b5eee94003ccab32ddf940d3b8bb7312643d1e1bb3ae10228fd0d84 + 643e53172be0fd9c4a9480ee718205fa593b0c0ee325d92248bceac3f8c7b31a4fb23b9465df1df8f822da17b7f7ec0d538e5a462e2b559578b313b84392ea2e + ec21a001756ee29de1e67ad1b5fa4e5f5ef702332ac30a38fd3e8765355bdbcd8052ef4343bd9b9f9ef577cd93b8c20c64646ab48950922d0a64f11aa60abc04 + 6e02a28235a5fea5bb41fe376b384a8f83376b633ae67572d73b4152c94b07a5fadb1478a2debefb3ac30cb5594e0352b108b73163f9e09f260e4f483900a039 + 00f382e50aa061d8e3eac0a7bec89c711d2ec4c315d894fef92a8c71d79b4f9b8b6182bd2965b2428c12001c0748efff0e7a9610cea33f83a055c695d5ab767f + fdaf9dca1aaf9c01e65379b5b17dffc40f890721627bf5eca54558245324ad8983b7f445a642f9d9388367226e4a1d2fb15591ac0cbeec886c247eee76d3a576 + c3494504df969632ed8a0827ab8508354f31059e7cd44ae21a27a510793cffb53fc21dd1a42efbb0dfe7b22435450056443a2090992ff6043818fb0b25b1d5d0 + + + af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262 + 2d3adedff11b61f14c886e35afa036736dcd87a74d27b5c1510225d0f592e213 + 10108970eeda3eb932baac1428c7a2163b0e924c9a9e25b35bba72b28f70bd11 + 42214739f095a406f3fc83deb889744ac00df831c10daa55189b5d121c855af7 + d00278ae47eb27b34faecf67b4fe263f82d5412916c1ffd97c8cb7fb814b8444 + e776b6028c7cd22a4d0ba182a8bf62205d2ef576467e838ed6f2529b85fba24a + 5f4d72f40d7a5f82b15ca2b2e44b1de3c2ef86c426c95c1af0b6879522563030 + b98cb0ff3623be03326b373de6b9095218513e64f1ee2edd2525c7ad1e5cffd2 + 7124b49501012f81cc7f11ca069ec9226cecb8a2c850cfe644e327d22d3e1cd3 + 015094013f57a5277b59d8475c0501042c0b642e531b0a1c8f58d2163229e969 + 9b4052b38f1c5fc8b1f9ff7ac7b27cd242487b3d890d15c96a1c25b8aa0fb995 + 9cadc15fed8b5d854562b26a9536d9707cadeda9b143978f319ab34230535833 + 628bd2cb2004694adaab7bbd778a25df25c47b9d4155a55f8fbd79f2fe154cff + 3e2e5b74e048f3add6d21faab3f83aa44d3b2278afb83b80b3c35164ebeca205 + f1323a8631446cc50536a9f705ee5cb619424d46887f3c376c695b70e0f0507f + 61da957ec2499a95d6b8023e2b0e604ec7f6b50e80a9678b89d2628e99ada77a + a003fc7a51754a9b3c7fae0367ab3d782dccf28855a03d435f8cfe74605e7817 + aae792484c8efe4f19e2ca7d371d8c467ffb10748d8a5a1ae579948f718a2a63 + bab6c09cb8ce8cf459261398d2e7aef35700bf488116ceb94a36d0f5f1b7bc3b + f875d6646de28985646f34ee13be9a576fd515f76b5b0a26bb324735041ddde4 + 62b6960e1a44bcc1eb1a611a8d6235b6b4b78f32e7abc4fb4c6cdcce94895c47 + + + a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a + 5d53469f20fef4f8eab52b88044ede69c77a6a68a60728609fc4a65ff531e7d0 + ed379e9012f1d3a4fef5096688a2557b3ceb68c619245bffcf05a14a5a846fd9 + 97a26b0e8066f35d400b7f12a6ae62a290bc1ca68660b4da8bf17afad6b8c948 + 881ad9ffbd7f090efa51cbdfe93da23a0401f4446f7adf150d1c226851cbfff2 + af504dd36feb666b16fe553116adbdd604e449ca783e54a83171aee7ddc7e7b1 + 986b81944604ef3a1f26032a04537777c0ecd1cb66b37e3ca6e9b108befaf56c + 120a055c592d237c0f535eebfc05673374fe4a50e1330293ef2c1ab611e0d0ba + 721f0e936b3b93c0384f970c07680a8a6293e5012295e83615ea4657ed5d7e17 + 644e15224f5597351aef5c4bdd22b27ca0c19db2244431534c2a4a0bebfdf39c + fded8fd9d6551c601eeb3b7c6bc5e5cfd8aad1d015b7e9aaa9c9b9475231d5e2 + cf3ccff92480a29160c2d38317c430e14749bfee1788106957dfe73f8c4930e5 + 4134fa637cc87ac52320f311f4a681ef740b58da8ce2c09c721eedd720179c4f + 4996d371abd506e72178b4cbea8e9f5ad781a5a566543d97f89a4efb13d5bb5f + 295fef4d46110ee21fba0d1798a1bb7c1bbc88306bc9b7661b18ace7170f02ae + 3456dac4a1209693b8c2bd2cd27fc64c330ce283b8d43a0d9662761825865cbc + ba7f1834cddbba9f82cd4dcf7a106bb2e615fec90020f5a5de8efff8d49198b6 + 413cf357775aef534fcd49da91a30f7877b50bbd924a20649315a4827f79cac0 + 51a0283a8332e99679957152f59acd063596f607f567053ef538e64c9f75ecf2 + aee1e49906909f36267064b9e924a42cc84832c16f2b453ce3dc90ed09431ee9 + 3d6f9314a37c0dec3cd87ccfb4b5d515c3449e40c1640c0123e511134fd3371c + 5f24381c43d4473a3a65dba2430023c3415eb682d7ab0baffec2576c6e20649e + 40e655a0042c7fc243710579c0d6fad05daceba7d474de35cccb17d194c2cda2 + c1743d3e79e9a1516251b027c4210f8b592630bfc9456d4ce36b17e9908bf8fa + 791faf2ff8ab27eb6ea5b860baa8db20336213bbe1da02e050f4da3451d868e4 + d07ffdb737ad569dc7f648f0bc6dd0968475a7c72dc8aaf8a40184829d9e276d + 2d31fe5b4080fb6a965196936406cb33d3a929030ad9b151dde066e533bb4b99 + 2277dd53396cef38fe8aa8716739e7d2f4fa33a55c697f21409e96715eca91dc + de9a4c24206979eea656585ffc5877faf6203b1bc90a4fbde802f05c36d44c73 + 1c76a266bcfc80883d589fbd593ccd628d0b368ecbb40bd9e932d9def73598c9 + ae1e2d41aabdd5f20028d82dbd03bb02c64de6021b9c5afb5db3bec5b415528c + 91cbc140c95662bd52cfb156b36fe9eed52f264dd7babde25cb5e84837633b88 + 8f8eeb8c5f4c7ca72654a2f6b8ee7c84e0367846655af46494e3e98f91208a43 + cbc6fd3ce90dafe74a83bb29674e48082f59efd400b989214a63e85ae1984d43 + + + + + + + + + + + + + + string + substring + + 1 + + + + + + + 'Abc', 'a' + 2 + Abc + a + + + + 3 + project.name + 7 + 5 + + + + 1 + 12 - 7 + + + + 3 + project.name + 7 + 12 - 7 + + + + + 0 + + + Just a string. + Just a string. + 1 + + + ${string::empty( + environment::get-folder-path('Desktop') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('Programs') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('Personal') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('MyDocuments') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('Favorites') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('Startup') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('Recent') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('SendTo') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('StartMenu') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('MyMusic') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('MyVideos') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('DesktopDirectory') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('MyComputer') + )} + True + 1 + + + ${string::empty( + environment::get-folder-path('NetworkShortcuts') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('Fonts') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('Templates') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('CommonStartMenu') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('CommonPrograms') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('CommonStartup') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('CommonDesktopDirectory') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('ApplicationData') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('PrinterShortcuts') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('LocalApplicationData') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('InternetCache') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('Cookies') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('History') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('CommonApplicationData') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('Windows') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('System') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('ProgramFiles') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('MyPictures') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('UserProfile') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('SystemX86') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('ProgramFilesX86') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('CommonProgramFiles') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('CommonProgramFilesX86') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('CommonTemplates') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('CommonDocuments') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('CommonAdminTools') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('AdminTools') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('CommonMusic') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('CommonPictures') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('CommonVideos') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('Resources') + )} + False + 1 + + + ${string::empty( + environment::get-folder-path('LocalizedResources') + )} + True + 1 + + + ${string::empty( + environment::get-folder-path('CommonOemLinks') + )} + True + 1 + + + ${string::empty( + environment::get-folder-path('CDBurning') + )} + False + 1 + + + ${math::less(string::get-length(environment::get-machine-name()), 255)} + True + 1 + + + ${string::empty(environment::get-operating-system())} + False + 1 + + + ${string::substring(environment::get-operating-system(), '0', '20')} + Microsoft Windows NT + 1 + + + ${string::empty(environment::get-user-name())} + False + 1 + + + ${string::empty(environment::get-variable('SystemRoot'))} + False + 1 + + + newline() -> ${environment::newline()} + newline() -> + 1 + + + newline() -> ${environment::newline()} + newline() -> + 1 + + + variable-exists('PATH') -> ${environment::variable-exists('PATH')} + variable-exists('PATH') -> True + 1 + + + variable-exists('PATH!@#') -> ${environment::variable-exists('PATH!@#')} + variable-exists('PATH!@#') -> False + 1 + + + ${string::empty(environment::is64bit-process())} + False + 1 + + + ${string::empty(environment::is64bit-operating-system())} + False + 1 + + + ${math::less('0', environment::processor-count())} + True + 1 + + + contains('Abc', 'a') -> ${string::contains('Abc', 'a')} + contains('Abc', 'a') -> False + 1 + + + contains('Abc', 'A') -> ${string::contains('Abc', 'A')} + contains('Abc', 'A') -> True + 1 + + + ends-with('', '') -> ${string::ends-with('', '')} + ends-with('', '') -> True + 1 + + + ends-with('', 'A') -> ${string::ends-with('', 'A')} + ends-with('', 'A') -> False + 1 + + + ends-with(' ', ' ') -> ${string::ends-with(' ', ' ')} + ends-with(' ', ' ') -> True + 1 + + + ends-with('AB', 'CD') -> ${string::ends-with('AB', 'CD')} + ends-with('AB', 'CD') -> False + 1 + + + ends-with('ABCD', 'CD') -> ${string::ends-with('ABCD', 'CD')} + ends-with('ABCD', 'CD') -> True + 1 + + + get-length('') -> ${string::get-length('')} + get-length('') -> 0 + 1 + + + get-length(' ') -> ${string::get-length(' ')} + get-length(' ') -> 1 + 1 + + + empty() -> ${string::empty('')}, + empty( ) -> ${string::empty(' ')} + empty() -> True, + empty( ) -> False + 1 + + + get-length('ABCDE') -> ${string::get-length('ABCDE')} + get-length('ABCDE') -> 5 + 1 + + + index-of('', '') -> ${string::index-of('', '')} + index-of('', '') -> 0 + 1 + + + index-of(' ', ' ') -> ${string::index-of(' ', ' ')} + index-of(' ', ' ') -> 0 + 1 + + + index-of(' ', 'A') -> ${string::index-of(' ', 'A')} + index-of(' ', 'A') -> -1 + 1 + + + index-of('AB', 'B') -> ${string::index-of('AB', 'B')} + index-of('AB', 'B') -> 1 + 1 + + + index-of('ABAB', 'B') -> ${string::index-of('ABAB', 'B')} + index-of('ABAB', 'B') -> 1 + 1 + + + index-of('AB', 'C') -> ${string::index-of('AB', 'C')} + index-of('AB', 'C') -> -1 + 1 + + + last-index-of('AB', 'B') -> ${string::last-index-of('AB', 'B')} + last-index-of('AB', 'B') -> 1 + 1 + + + last-index-of('ABAB', 'B') -> ${string::last-index-of('ABAB', 'B')} + last-index-of('ABAB', 'B') -> 3 + 1 + + + last-index-of('AB', 'C') -> ${string::last-index-of('AB', 'C')} + last-index-of('AB', 'C') -> -1 + 1 + + + index-of-any('AB', 'BA') -> ${string::index-of-any('AB', 'BA')} + index-of-any('AB', 'BA') -> 0 + 1 + + + index-of-any('ABAB', 'AB') -> ${string::index-of-any('ABAB', 'AB')} + index-of-any('ABAB', 'AB') -> 0 + 1 + + + last-index-of-any('AB', 'BA') -> ${string::last-index-of-any('AB', 'BA')} + last-index-of-any('AB', 'BA') -> 1 + 1 + + + last-index-of-any('ABAB', 'BA') -> ${string::last-index-of-any('ABAB', 'BA')} + last-index-of-any('ABAB', 'BA') -> 3 + 1 + + + pad-left('Abc', ' ', '4') -> ${string::pad-left('Abc', 4, ' ')} + pad-left('Abc', ' ', '4') -> Abc + 1 + + + pad-right('Abc', ' ', '4') -> ${string::pad-right('Abc', 4, ' ')} + pad-right('Abc', ' ', '4') -> Abc + 1 + + + replace('', '', '') -> ${string::replace('', '', '')} + replace('', '', '') -> + 0 + + + replace('abc', 'b', 'ABC') -> ${string::replace('abc', 'b', 'ABC')} + replace('abc', 'b', 'ABC') -> aABCc + 1 + + + replace('abc123', 'bc1', '') -> ${string::replace('abc123', 'bc1', '')} + replace('abc123', 'bc1', '') -> a23 + 1 + + + starts-with('', '') -> ${string::starts-with('', '')} + starts-with('', '') -> True + 1 + + + starts-with('', 'A') -> ${string::starts-with('', 'A')} + starts-with('', 'A') -> False + 1 + + + starts-with(' ', ' ') -> ${string::starts-with(' ', ' ')} + starts-with(' ', ' ') -> True + 1 + + + starts-with('AB', 'CD') -> ${string::starts-with('AB', 'CD')} + starts-with('AB', 'CD') -> False + 1 + + + starts-with('ABCD', 'AB') -> ${string::starts-with('ABCD', 'AB')} + starts-with('ABCD', 'AB') -> True + 1 + + + substring('ABCD', '2', '1') -> ${string::substring('ABCD', '2', '1')} + substring('ABCD', '2', '1') -> C + 1 + + + substring('ABCD', '2', '3') -> ${string::substring('ABCD', '2', '3')} + substring('ABCD', '2', '3') -> + 0 + + + substring('ABCD', '2', '4') -> ${string::substring('ABCD', '2', '4')} + substring('ABCD', '2', '4') -> + 0 + + + substring('ABCD', '2') -> ${string::substring('ABCD', '2')} + substring('ABCD', '2') -> CD + 1 + + + substring('ABCD', '4') -> ${string::substring('ABCD', '4')} + substring('ABCD', '4') -> + 1 + + + substring('ABCD', '5') -> ${string::substring('ABCD', '5')} + substring('ABCD', '5') -> + 0 + + + to-lower('') -> ${string::to-lower('')} + to-lower('') -> + 0 + + + to-lower('ABCD') -> ${string::to-lower('ABCD')} + to-lower('ABCD') -> abcd + 1 + + + to-lower('abcd') -> ${string::to-lower('abcd')} + to-lower('abcd') -> abcd + 1 + + + to-upper('') -> ${string::to-upper('')} + to-upper('') -> + 0 + + + to-upper('ABCD') -> ${string::to-upper('ABCD')} + to-upper('ABCD') -> ABCD + 1 + + + to-upper('abcd') -> ${string::to-upper('abcd')} + to-upper('abcd') -> ABCD + 1 + + + trim(' abc ') -> ${string::trim(' abc ')} + trim(' abc ') -> abc + 1 + + + trim-end(' abc ') -> ${string::trim-end(' abc ')} + trim-end(' abc ') -> abc + 1 + + + trim-start(' abc ') -> ${string::trim-start(' abc ')} + trim-start(' abc ') -> abc + 1 + + + quote() -> ${string::quote('')} + quote() -> "" + 1 + + + quote(a b c) -> ${string::quote('a b c')} + quote(a b c) -> "a b c" + 1 + + + un-quote() -> ${string::un-quote('')} + un-quote() -> + 1 + + + un-quote(") -> ${string::un-quote('"')} + un-quote(") -> + 1 + + + un-quote("a b c") -> ${string::un-quote('"a b c"')} + un-quote("a b c") -> a b c + 1 + + + un-quote(""a b c"") -> ${string::un-quote('""a b c""')} + un-quote(""a b c"") -> a b c + 1 + + + equal('', '') -> ${string::equal('', '')} + equal('', '') -> True + 1 + + + equal(' ', ' ') -> ${string::equal(' ', ' ')} + equal(' ', ' ') -> True + 1 + + + equal('A', 'B') -> ${string::equal('A', 'B')} + equal('A', 'B') -> False + 1 + + + ${property::exists('My_property')} + False + 1 + + + ${property::get_value('My_property')} + 0 + + + ${property::is_dynamic('My_property')} + 0 + + + ${property::is_readonly('My_property')} + 0 + + + ${string::equal(platform::is-unix(), platform::is-windows())} + False + 1 + + + ${version::parse('1.2.3.4')} + 1.2.3.4 + 1 + + + ${version::to-string('1.2.3.4')} + 1.2.3.4 + 1 + + + ${version::get-major('1.2.3.4')} + 1 + 1 + + + ${version::get-minor('1.2.3.4')} + 2 + 1 + + + ${version::get-build('1.2.3.4')} + 3 + 1 + + + ${version::get-revision('1.2.3.4')} + 4 + 1 + + + ${project::get-base-directory()} + 1 + + + ${project::get-buildfile-path()} + 1 + + + ${project::get-buildfile-uri()} + 1 + + + ${project::get-default-target()} + 1 + + + ${project::get-name()} + 1 + + + + path::change-extension('1.txt', '.exe') => ${path::change-extension('1.txt', '.exe')} + path::change-extension('1.txt', '.exe') => 1.exe + 1 + + + path::combine('C:\', '\Windows') => ${path::combine('C:\', '\Windows')} + path::combine('C:\', '\Windows') => C:\Windows + 1 + + + path::combine('/tmp/', '/file') => ${path::combine('/tmp/', '/file')} + path::combine('/tmp/', '/file') => /tmp/file + 1 + + + path::get-directory-name('C:\Windows\System32\cmd.exe') => ${path::get-directory-name('C:\Windows\System32\cmd.exe')} + path::get-directory-name('C:\Windows\System32\cmd.exe') => C:\Windows\System32 + 1 + + + path::get-directory-name('/tmp/file') => ${path::get-directory-name('/tmp/file')} + path::get-directory-name('/tmp/file') => /tmp + 1 + + + get-file-name('C:\Windows\System32\cmd.exe') => ${path::get-file-name('C:\Windows\System32\cmd.exe')} + get-file-name('C:\Windows\System32\cmd.exe') => cmd.exe + 1 + + + get-file-name('/tmp/file') => ${path::get-file-name('/tmp/file')} + get-file-name('/tmp/file') => file + 1 + + + get-file-name-without-extension('1.txt') => ${path::get-file-name-without-extension('1.txt')} + get-file-name-without-extension('1.txt') => 1 + 1 + + + get-file-name-without-extension('abc.txt') => ${path::get-file-name-without-extension('abc.txt')} + get-file-name-without-extension('abc.txt') => abc + 1 + + + get-path-root('C:\Windows\System32\cmd.exe') => ${path::get-path-root('C:\Windows\System32\cmd.exe')} + get-path-root('C:\Windows\System32\cmd.exe') => C:\ + 1 + + + get-path-root('/tmp/file') => ${path::get-path-root('/tmp/file')} + get-path-root('/tmp/file') => / + 1 + + + is-path-rooted(get-temp-file-name()) => ${path::is-path-rooted(path::get-temp-file-name())} + is-path-rooted(get-temp-file-name()) => True + 1 + + + is-path-rooted(get-temp-path()) => ${path::is-path-rooted(path::get-temp-path())} + is-path-rooted(get-temp-path()) => True + 1 + + + has-extension('abc.txt') => ${path::has-extension('abc.txt')} + has-extension('abc.txt') => True + 1 + + + has-extension('abc') => ${path::has-extension('abc')} + has-extension('abc') => False + 1 + + + is-path-rooted('abc') => ${path::is-path-rooted('abc')} + is-path-rooted('abc') => False + 1 + + + is-path-rooted('C:\') => ${path::is-path-rooted('C:\')} + is-path-rooted('C:\') => True + 1 + + + is-path-rooted('/') => ${path::is-path-rooted('/')} + is-path-rooted('/') => True + 1 + + + less('1', string::get-length(get-full-path('.'))) => ${math::less('1', string::get-length(path::get-full-path('.')))} + less('1', string::get-length(get-full-path('.'))) => True + 1 + + + get-dos-path('C:\Program Files\Windows Defender Advanced Threat Protection') => ${cygpath::get-dos-path('C:\Program Files\Windows Defender Advanced Threat Protection')} + get-dos-path('C:\Program Files\Windows Defender Advanced Threat Protection') => C:\PROGRA~1\WIF4A9~1 + 1 + + + get-dos-path('\') => ${cygpath::get-dos-path('\')} + get-dos-path('\') => + 0 + + + get-unix-path('C:\Windows\System32') => ${cygpath::get-unix-path('C:\Windows\System32')} + get-unix-path('C:\Windows\System32') => C:/Windows/System32 + 1 + + + get-unix-path('/usr/lib/') => ${cygpath::get-unix-path('/usr/lib/')} + get-unix-path('/usr/lib/') => /usr/lib/ + 1 + + + get-windows-path('C:\Windows\System32') => ${cygpath::get-windows-path('C:\Windows\System32')} + get-windows-path('C:\Windows\System32') => C:\Windows\System32 + 1 + + + get-windows-path('/usr/lib/') => ${cygpath::get-windows-path('/usr/lib/')} + get-windows-path('/usr/lib/') => \usr\lib\ + 1 + + + empty(get-directory-name(get-temp-path())) -> ${string::empty(path::get-directory-name(path::get-temp-path()))} + empty(get-directory-name(get-temp-path())) -> False + 1 + + + empty(current-directory()) => ${string::empty(program::current-directory())} + empty(current-directory()) => False + 1 + + + parse('True') => ${bool::parse('True')} + parse('True') => True + 1 + + + parse('False') => ${bool::parse('False')} + parse('False') => False + 1 + + + to-string('True') => ${bool::to-string('True')} + to-string('True') => True + 1 + + + to-string('False') => ${bool::to-string('False')} + to-string('False') => False + 1 + + + parse('0.5') => ${string::substring(double::parse('0.5'), '0', '3')} + parse('0.5') => 0.5 + 1 + + + to-string('0.5') => ${string::substring(double::to-string('0.5'), '0', '3')} + to-string('0.5') => 0.5 + 1 + + + parse('2') => ${int::parse('2')} + parse('2') => 2 + 1 + + + to-string('2') => ${int::to-string('2')} + to-string('2') => 2 + 1 + + + parse('2147483647') => ${long::parse('2147483647')} + parse('2147483647') => 2147483647 + 1 + + + to-string('2147483647') => ${long::to-string('2147483647')} + to-string('2147483647') => 2147483647 + 1 + + + parse('9223372036854775807') => ${int64::parse('9223372036854775807')} + parse('9223372036854775807') => 9223372036854775807 + 1 + + + to-string('9223372036854775807') => ${int64::to-string('9223372036854775807')} + to-string('9223372036854775807') => 9223372036854775807 + 1 + + + truncate(abs('-1')) -> ${math::truncate(math::abs('-1'))}, truncate(abs('1')) -> ${math::truncate(math::abs('1'))} + truncate(abs('-1')) -> 1, truncate(abs('1')) -> 1 + 1 + + + truncate(ceiling('-1.75')) -> ${math::truncate(math::ceiling('-1.75'))}, + truncate(ceiling('-1.5')) -> ${math::truncate(math::ceiling('-1.5'))}, + truncate(ceiling('-1.25')) -> ${math::truncate(math::ceiling('-1.25'))}, + truncate(ceiling('-1')) -> ${math::truncate(math::ceiling('-1'))}, + truncate(ceiling('-0.75')) -> ${math::truncate(math::ceiling('-0.75'))}, + truncate(ceiling('-0.5')) -> ${math::truncate(math::ceiling('-0.5'))}, + truncate(ceiling('-0.25')) -> ${math::truncate(math::ceiling('-0.25'))}, + truncate(ceiling('0')) -> ${math::truncate(math::ceiling('0'))}, + truncate(ceiling('0.25')) -> ${math::truncate(math::ceiling('0.25'))}, + truncate(ceiling('0.5')) -> ${math::truncate(math::ceiling('0.5'))}, + truncate(ceiling('0.75')) -> ${math::truncate(math::ceiling('0.75'))}, + truncate(ceiling('1')) -> ${math::truncate(math::ceiling('1'))}, + truncate(ceiling('1.25')) -> ${math::truncate(math::ceiling('1.25'))}, + truncate(ceiling('1.5')) -> ${math::truncate(math::ceiling('1.5'))}, + truncate(ceiling('1.75')) -> ${math::truncate(math::ceiling('1.75'))} + truncate(ceiling('-1.75')) -> -1, + truncate(ceiling('-1.5')) -> -1, + truncate(ceiling('-1.25')) -> -1, + truncate(ceiling('-1')) -> -1, + truncate(ceiling('-0.75')) -> 0, + truncate(ceiling('-0.5')) -> 0, + truncate(ceiling('-0.25')) -> 0, + truncate(ceiling('0')) -> 0, + truncate(ceiling('0.25')) -> 1, + truncate(ceiling('0.5')) -> 1, + truncate(ceiling('0.75')) -> 1, + truncate(ceiling('1')) -> 1, + truncate(ceiling('1.25')) -> 2, + truncate(ceiling('1.5')) -> 2, + truncate(ceiling('1.75')) -> 2 + 1 + + + truncate(floor('-1.75')) -> ${math::truncate(math::floor('-1.75'))}, + truncate(floor('-1.5')) -> ${math::truncate(math::floor('-1.5'))}, + truncate(floor('-1.25')) -> ${math::truncate(math::floor('-1.25'))}, + truncate(floor('-1')) -> ${math::truncate(math::floor('-1'))}, + truncate(floor('-0.75')) -> ${math::truncate(math::floor('-0.75'))}, + truncate(floor('-0.5')) -> ${math::truncate(math::floor('-0.5'))}, + truncate(floor('-0.25')) -> ${math::truncate(math::floor('-0.25'))}, + truncate(floor('0')) -> ${math::truncate(math::floor('0'))}, + truncate(floor('0.25')) -> ${math::truncate(math::floor('0.25'))}, + truncate(floor('0.5')) -> ${math::truncate(math::floor('0.5'))}, + truncate(floor('0.75')) -> ${math::truncate(math::floor('0.75'))}, + truncate(floor('1')) -> ${math::truncate(math::floor('1'))}, + truncate(floor('1.25')) -> ${math::truncate(math::floor('1.25'))}, + truncate(floor('1.5')) -> ${math::truncate(math::floor('1.5'))}, + truncate(floor('1.75')) -> ${math::truncate(math::floor('1.75'))} + truncate(floor('-1.75')) -> -2, + truncate(floor('-1.5')) -> -2, + truncate(floor('-1.25')) -> -2, + truncate(floor('-1')) -> -1, + truncate(floor('-0.75')) -> -1, + truncate(floor('-0.5')) -> -1, + truncate(floor('-0.25')) -> -1, + truncate(floor('0')) -> 0, + truncate(floor('0.25')) -> 0, + truncate(floor('0.5')) -> 0, + truncate(floor('0.75')) -> 0, + truncate(floor('1')) -> 1, + truncate(floor('1.25')) -> 1, + truncate(floor('1.5')) -> 1, + truncate(floor('1.75')) -> 1 + 1 + + + truncate(round('-1.75')) -> ${math::truncate(math::round('-1.75'))}, + truncate(round('-1.5')) -> ${math::truncate(math::round('-1.5'))}, + truncate(round('-1.25')) -> ${math::truncate(math::round('-1.25'))}, + truncate(round('-1')) -> ${math::truncate(math::round('-1'))}, + truncate(round('-0.75')) -> ${math::truncate(math::round('-0.75'))}, + truncate(round('-0.5')) -> ${math::truncate(math::round('-0.5'))}, + truncate(round('-0.25')) -> ${math::truncate(math::round('-0.25'))}, + truncate(round('0')) -> ${math::truncate(math::round('0'))}, + truncate(round('0.25')) -> ${math::truncate(math::round('0.25'))}, + truncate(round('0.5')) -> ${math::truncate(math::round('0.5'))}, + truncate(round('0.75')) -> ${math::truncate(math::round('0.75'))}, + truncate(round('1')) -> ${math::truncate(math::round('1'))}, + truncate(round('1.25')) -> ${math::truncate(math::round('1.25'))}, + truncate(round('1.5')) -> ${math::truncate(math::round('1.5'))}, + truncate(round('1.75')) -> ${math::truncate(math::round('1.75'))} + truncate(round('-1.75')) -> -2, + truncate(round('-1.5')) -> -2, + truncate(round('-1.25')) -> -1, + truncate(round('-1')) -> -1, + truncate(round('-0.75')) -> -1, + truncate(round('-0.5')) -> 0, + truncate(round('-0.25')) -> 0, + truncate(round('0')) -> 0, + truncate(round('0.25')) -> 0, + truncate(round('0.5')) -> 0, + truncate(round('0.75')) -> 1, + truncate(round('1')) -> 1, + truncate(round('1.25')) -> 1, + truncate(round('1.5')) -> 2, + truncate(round('1.75')) -> 2 + 1 + + + truncate(multiplication(100000, acos(-1))) -> ${math::truncate(math::multiplication('100000', math::acos('-1')))}, + truncate(multiplication(100000, acos(-0.75))) -> ${math::truncate(math::multiplication('100000', math::acos('-0.75')))}, + truncate(multiplication(100000, acos(-0.5))) -> ${math::truncate(math::multiplication('100000', math::acos('-0.5')))}, + truncate(multiplication(100000, acos(-0.25))) -> ${math::truncate(math::multiplication('100000', math::acos('-0.25')))}, + truncate(multiplication(100000, acos(0))) -> ${math::truncate(math::multiplication('100000', math::acos('0')))}, + truncate(multiplication(100000, acos(0.25))) -> ${math::truncate(math::multiplication('100000', math::acos('0.25')))}, + truncate(multiplication(100000, acos(0.5))) -> ${math::truncate(math::multiplication('100000', math::acos('0.5')))}, + truncate(multiplication(100000, acos(0.75))) -> ${math::truncate(math::multiplication('100000', math::acos('0.75')))}, + truncate(multiplication(100000, acos(1))) -> ${math::truncate(math::multiplication('100000', math::acos('1')))} + truncate(multiplication(100000, acos(-1))) -> 314159, + truncate(multiplication(100000, acos(-0.75))) -> 241885, + truncate(multiplication(100000, acos(-0.5))) -> 209439, + truncate(multiplication(100000, acos(-0.25))) -> 182347, + truncate(multiplication(100000, acos(0))) -> 157079, + truncate(multiplication(100000, acos(0.25))) -> 131811, + truncate(multiplication(100000, acos(0.5))) -> 104719, + truncate(multiplication(100000, acos(0.75))) -> 72273, + truncate(multiplication(100000, acos(1))) -> 0 + 1 + + + truncate(multiplication(100000, asin(-1))) -> ${math::truncate(math::multiplication('100000', math::asin('-1')))}, + truncate(multiplication(100000, asin(-0.75))) -> ${math::truncate(math::multiplication('100000', math::asin('-0.75')))}, + truncate(multiplication(100000, asin(-0.5))) -> ${math::truncate(math::multiplication('100000', math::asin('-0.5')))}, + truncate(multiplication(100000, asin(-0.25))) -> ${math::truncate(math::multiplication('100000', math::asin('-0.25')))}, + truncate(multiplication(100000, asin(0))) -> ${math::truncate(math::multiplication('100000', math::asin('0')))}, + truncate(multiplication(100000, asin(0.25))) -> ${math::truncate(math::multiplication('100000', math::asin('0.25')))}, + truncate(multiplication(100000, asin(0.5))) -> ${math::truncate(math::multiplication('100000', math::asin('0.5')))}, + truncate(multiplication(100000, asin(0.75))) -> ${math::truncate(math::multiplication('100000', math::asin('0.75')))}, + truncate(multiplication(100000, asin(1))) -> ${math::truncate(math::multiplication('100000', math::asin('1')))} + truncate(multiplication(100000, asin(-1))) -> -157079, + truncate(multiplication(100000, asin(-0.75))) -> -84806, + truncate(multiplication(100000, asin(-0.5))) -> -52359, + truncate(multiplication(100000, asin(-0.25))) -> -25268, + truncate(multiplication(100000, asin(0))) -> 0, + truncate(multiplication(100000, asin(0.25))) -> 25268, + truncate(multiplication(100000, asin(0.5))) -> 52359, + truncate(multiplication(100000, asin(0.75))) -> 84806, + truncate(multiplication(100000, asin(1))) -> 157079 + 1 + + + truncate(multiplication(100000, atan(-1))) -> ${math::truncate(math::multiplication('100000', math::atan('-1')))}, + truncate(multiplication(100000, atan(-0.75))) -> ${math::truncate(math::multiplication('100000', math::atan('-0.75')))}, + truncate(multiplication(100000, atan(-0.5))) -> ${math::truncate(math::multiplication('100000', math::atan('-0.5')))}, + truncate(multiplication(100000, atan(-0.25))) -> ${math::truncate(math::multiplication('100000', math::atan('-0.25')))}, + truncate(multiplication(100000, atan(0))) -> ${math::truncate(math::multiplication('100000', math::atan('0')))}, + truncate(multiplication(100000, atan(0.25))) -> ${math::truncate(math::multiplication('100000', math::atan('0.25')))}, + truncate(multiplication(100000, atan(0.5))) -> ${math::truncate(math::multiplication('100000', math::atan('0.5')))}, + truncate(multiplication(100000, atan(0.75))) -> ${math::truncate(math::multiplication('100000', math::atan('0.75')))}, + truncate(multiplication(100000, atan(1))) -> ${math::truncate(math::multiplication('100000', math::atan('1')))} + truncate(multiplication(100000, atan(-1))) -> -78539, + truncate(multiplication(100000, atan(-0.75))) -> -64350, + truncate(multiplication(100000, atan(-0.5))) -> -46364, + truncate(multiplication(100000, atan(-0.25))) -> -24497, + truncate(multiplication(100000, atan(0))) -> 0, + truncate(multiplication(100000, atan(0.25))) -> 24497, + truncate(multiplication(100000, atan(0.5))) -> 46364, + truncate(multiplication(100000, atan(0.75))) -> 64350, + truncate(multiplication(100000, atan(1))) -> 78539 + 1 + + + truncate(multiplication(100000, atan2(0.5, -1))) -> ${math::truncate(math::multiplication('100000', math::atan2('0.5', '-1')))}, + truncate(multiplication(100000, atan2(0.5, -0.75))) -> ${math::truncate(math::multiplication('100000', math::atan2('0.5', '-0.75')))}, + truncate(multiplication(100000, atan2(0.5, -0.5))) -> ${math::truncate(math::multiplication('100000', math::atan2('0.5', '-0.5')))}, + truncate(multiplication(100000, atan2(0.5, -0.25))) -> ${math::truncate(math::multiplication('100000', math::atan2('0.5', '-0.25')))}, + truncate(multiplication(100000, atan2(0.5, 0))) -> ${math::truncate(math::multiplication('100000', math::atan2('0.5', '0')))}, + truncate(multiplication(100000, atan2(0.5, 0.25))) -> ${math::truncate(math::multiplication('100000', math::atan2('0.5', '0.25')))}, + truncate(multiplication(100000, atan2(0.5, 0.5))) -> ${math::truncate(math::multiplication('100000', math::atan2('0.5', '0.5')))}, + truncate(multiplication(100000, atan2(0.5, 0.75))) -> ${math::truncate(math::multiplication('100000', math::atan2('0.5', '0.75')))}, + truncate(multiplication(100000, atan2(0.5, 1))) -> ${math::truncate(math::multiplication('100000', math::atan2('0.5', '1')))} + truncate(multiplication(100000, atan2(0.5, -1))) -> -110714, + truncate(multiplication(100000, atan2(0.5, -0.75))) -> -98279, + truncate(multiplication(100000, atan2(0.5, -0.5))) -> -78539, + truncate(multiplication(100000, atan2(0.5, -0.25))) -> -46364, + truncate(multiplication(100000, atan2(0.5, 0))) -> 0, + truncate(multiplication(100000, atan2(0.5, 0.25))) -> 46364, + truncate(multiplication(100000, atan2(0.5, 0.5))) -> 78539, + truncate(multiplication(100000, atan2(0.5, 0.75))) -> 98279, + truncate(multiplication(100000, atan2(0.5, 1))) -> 110714 + 1 + + + truncate(multiplication(100000, atan2(1, -1))) -> ${math::truncate(math::multiplication('100000', math::atan2('1', '-1')))}, + truncate(multiplication(100000, atan2(1, -0.75))) -> ${math::truncate(math::multiplication('100000', math::atan2('1', '-0.75')))}, + truncate(multiplication(100000, atan2(1, -0.5))) -> ${math::truncate(math::multiplication('100000', math::atan2('1', '-0.5')))}, + truncate(multiplication(100000, atan2(1, -0.25))) -> ${math::truncate(math::multiplication('100000', math::atan2('1', '-0.25')))}, + truncate(multiplication(100000, atan2(1, 0))) -> ${math::truncate(math::multiplication('100000', math::atan2('1', '0')))}, + truncate(multiplication(100000, atan2(1, 0.25))) -> ${math::truncate(math::multiplication('100000', math::atan2('1', '0.25')))}, + truncate(multiplication(100000, atan2(1, 0.5))) -> ${math::truncate(math::multiplication('100000', math::atan2('1', '0.5')))}, + truncate(multiplication(100000, atan2(1, 0.75))) -> ${math::truncate(math::multiplication('100000', math::atan2('1', '0.75')))}, + truncate(multiplication(100000, atan2(1, 1))) -> ${math::truncate(math::multiplication('100000', math::atan2('1', '1')))} + truncate(multiplication(100000, atan2(1, -1))) -> -78539, + truncate(multiplication(100000, atan2(1, -0.75))) -> -64350, + truncate(multiplication(100000, atan2(1, -0.5))) -> -46364, + truncate(multiplication(100000, atan2(1, -0.25))) -> -24497, + truncate(multiplication(100000, atan2(1, 0))) -> 0, + truncate(multiplication(100000, atan2(1, 0.25))) -> 24497, + truncate(multiplication(100000, atan2(1, 0.5))) -> 46364, + truncate(multiplication(100000, atan2(1, 0.75))) -> 64350, + truncate(multiplication(100000, atan2(1, 1))) -> 78539 + 1 + + + truncate(multiplication(100000, atan2(2, -1))) -> ${math::truncate(math::multiplication('100000', math::atan2('2', '-1')))}, + truncate(multiplication(100000, atan2(2, -0.75))) -> ${math::truncate(math::multiplication('100000', math::atan2('2', '-0.75')))}, + truncate(multiplication(100000, atan2(2, -0.5))) -> ${math::truncate(math::multiplication('100000', math::atan2('2', '-0.5')))}, + truncate(multiplication(100000, atan2(2, -0.25))) -> ${math::truncate(math::multiplication('100000', math::atan2('2', '-0.25')))}, + truncate(multiplication(100000, atan2(2, 0))) -> ${math::truncate(math::multiplication('100000', math::atan2('2', '0')))}, + truncate(multiplication(100000, atan2(2, 0.25))) -> ${math::truncate(math::multiplication('100000', math::atan2('2', '0.25')))}, + truncate(multiplication(100000, atan2(2, 0.5))) -> ${math::truncate(math::multiplication('100000', math::atan2('2', '0.5')))}, + truncate(multiplication(100000, atan2(2, 0.75))) -> ${math::truncate(math::multiplication('100000', math::atan2('2', '0.75')))}, + truncate(multiplication(100000, atan2(2, 1))) -> ${math::truncate(math::multiplication('100000', math::atan2('2', '1')))} + truncate(multiplication(100000, atan2(2, -1))) -> -46364, + truncate(multiplication(100000, atan2(2, -0.75))) -> -35877, + truncate(multiplication(100000, atan2(2, -0.5))) -> -24497, + truncate(multiplication(100000, atan2(2, -0.25))) -> -12435, + truncate(multiplication(100000, atan2(2, 0))) -> 0, + truncate(multiplication(100000, atan2(2, 0.25))) -> 12435, + truncate(multiplication(100000, atan2(2, 0.5))) -> 24497, + truncate(multiplication(100000, atan2(2, 0.75))) -> 35877, + truncate(multiplication(100000, atan2(2, 1))) -> 46364 + 1 + + + truncate(multiplication(100000, cos(-6.28318531))) -> ${math::truncate(math::multiplication('100000', math::cos('-6.28318531')))}, + truncate(multiplication(100000, cos(-5.49778714))) -> ${math::truncate(math::multiplication('100000', math::cos('-5.49778714')))}, + truncate(multiplication(100000, cos(-4.71238898))) -> ${math::truncate(math::multiplication('100000', math::cos('-4.71238898')))}, + truncate(multiplication(100000, cos(-3.92699082))) -> ${math::truncate(math::multiplication('100000', math::cos('-3.92699082')))}, + truncate(multiplication(100000, cos(-3.14159265))) -> ${math::truncate(math::multiplication('100000', math::cos('-3.14159265')))}, + truncate(multiplication(100000, cos(-2.35619449))) -> ${math::truncate(math::multiplication('100000', math::cos('-2.35619449')))}, + truncate(multiplication(100000, cos(-1.57079633))) -> ${math::truncate(math::multiplication('100000', math::cos('-1.57079633')))}, + truncate(multiplication(100000, cos(-0.78539816))) -> ${math::truncate(math::multiplication('100000', math::cos('-0.78539816')))}, + truncate(multiplication(100000, cos(0))) -> ${math::truncate(math::multiplication('100000', math::cos('0')))}, + truncate(multiplication(100000, cos(0.78539816))) -> ${math::truncate(math::multiplication('100000', math::cos('0.78539816')))}, + truncate(multiplication(100000, cos(1.57079633))) -> ${math::truncate(math::multiplication('100000', math::cos('1.57079633')))}, + truncate(multiplication(100000, cos(2.35619449))) -> ${math::truncate(math::multiplication('100000', math::cos('2.35619449')))}, + truncate(multiplication(100000, cos(3.14159265))) -> ${math::truncate(math::multiplication('100000', math::cos('3.14159265')))}, + truncate(multiplication(100000, cos(3.92699082))) -> ${math::truncate(math::multiplication('100000', math::cos('3.92699082')))}, + truncate(multiplication(100000, cos(4.71238898))) -> ${math::truncate(math::multiplication('100000', math::cos('4.71238898')))}, + truncate(multiplication(100000, cos(5.49778714))) -> ${math::truncate(math::multiplication('100000', math::cos('5.49778714')))}, + truncate(multiplication(100000, cos(6.28318531))) -> ${math::truncate(math::multiplication('100000', math::cos('6.28318531')))} + truncate(multiplication(100000, cos(-6.28318531))) -> 100000, + truncate(multiplication(100000, cos(-5.49778714))) -> 70710, + truncate(multiplication(100000, cos(-4.71238898))) -> 0, + truncate(multiplication(100000, cos(-3.92699082))) -> -70710, + truncate(multiplication(100000, cos(-3.14159265))) -> -100000, + truncate(multiplication(100000, cos(-2.35619449))) -> -70710, + truncate(multiplication(100000, cos(-1.57079633))) -> 0, + truncate(multiplication(100000, cos(-0.78539816))) -> 70710, + truncate(multiplication(100000, cos(0))) -> 100000, + truncate(multiplication(100000, cos(0.78539816))) -> 70710, + truncate(multiplication(100000, cos(1.57079633))) -> 0, + truncate(multiplication(100000, cos(2.35619449))) -> -70710, + truncate(multiplication(100000, cos(3.14159265))) -> -100000, + truncate(multiplication(100000, cos(3.92699082))) -> -70710, + truncate(multiplication(100000, cos(4.71238898))) -> 0, + truncate(multiplication(100000, cos(5.49778714))) -> 70710, + truncate(multiplication(100000, cos(6.28318531))) -> 100000 + 1 + + + truncate(cosh(-6.28318531)) -> ${math::truncate(math::cosh('-6.28318531'))}, + truncate(cosh(-5.49778714)) -> ${math::truncate(math::cosh('-5.49778714'))}, + truncate(cosh(-4.71238898)) -> ${math::truncate(math::cosh('-4.71238898'))}, + truncate(cosh(-3.92699082)) -> ${math::truncate(math::cosh('-3.92699082'))}, + truncate(cosh(-3.14159265)) -> ${math::truncate(math::cosh('-3.14159265'))}, + truncate(cosh(-2.35619449)) -> ${math::truncate(math::cosh('-2.35619449'))}, + truncate(cosh(-1.57079633)) -> ${math::truncate(math::cosh('-1.57079633'))}, + truncate(cosh(-0.78539816)) -> ${math::truncate(math::cosh('-0.78539816'))}, + truncate(cosh(0)) -> ${math::truncate(math::cosh('0'))}, + truncate(cosh(0.78539816)) -> ${math::truncate(math::cosh('0.78539816'))}, + truncate(cosh(1.57079633)) -> ${math::truncate(math::cosh('1.57079633'))}, + truncate(cosh(2.35619449)) -> ${math::truncate(math::cosh('2.35619449'))}, + truncate(cosh(3.14159265)) -> ${math::truncate(math::cosh('3.14159265'))}, + truncate(cosh(3.92699082)) -> ${math::truncate(math::cosh('3.92699082'))}, + truncate(cosh(4.71238898)) -> ${math::truncate(math::cosh('4.71238898'))}, + truncate(cosh(5.49778714)) -> ${math::truncate(math::cosh('5.49778714'))}, + truncate(cosh(6.28318531)) -> ${math::truncate(math::cosh('6.28318531'))} + truncate(cosh(-6.28318531)) -> 267, + truncate(cosh(-5.49778714)) -> 122, + truncate(cosh(-4.71238898)) -> 55, + truncate(cosh(-3.92699082)) -> 25, + truncate(cosh(-3.14159265)) -> 11, + truncate(cosh(-2.35619449)) -> 5, + truncate(cosh(-1.57079633)) -> 2, + truncate(cosh(-0.78539816)) -> 1, + truncate(cosh(0)) -> 1, + truncate(cosh(0.78539816)) -> 1, + truncate(cosh(1.57079633)) -> 2, + truncate(cosh(2.35619449)) -> 5, + truncate(cosh(3.14159265)) -> 11, + truncate(cosh(3.92699082)) -> 25, + truncate(cosh(4.71238898)) -> 55, + truncate(cosh(5.49778714)) -> 122, + truncate(cosh(6.28318531)) -> 267 + 1 + + + truncate(multiplication(100000, exp(-3))) -> ${math::truncate(math::multiplication('100000', math::exp('-3')))}, + truncate(multiplication(100000, exp(-2.75))) -> ${math::truncate(math::multiplication('100000', math::exp('-2.75')))}, + truncate(multiplication(100000, exp(-2.5))) -> ${math::truncate(math::multiplication('100000', math::exp('-2.5')))}, + truncate(multiplication(100000, exp(-2.25))) -> ${math::truncate(math::multiplication('100000', math::exp('-2.25')))}, + truncate(multiplication(100000, exp(-2))) -> ${math::truncate(math::multiplication('100000', math::exp('-2')))}, + truncate(multiplication(100000, exp(-1.75))) -> ${math::truncate(math::multiplication('100000', math::exp('-1.75')))}, + truncate(multiplication(100000, exp(-1.5))) -> ${math::truncate(math::multiplication('100000', math::exp('-1.5')))}, + truncate(multiplication(100000, exp(-1.25))) -> ${math::truncate(math::multiplication('100000', math::exp('-1.25')))}, + truncate(multiplication(100000, exp(-1))) -> ${math::truncate(math::multiplication('100000', math::exp('-1')))}, + truncate(multiplication(100000, exp(-0.75))) -> ${math::truncate(math::multiplication('100000', math::exp('-0.75')))}, + truncate(multiplication(100000, exp(-0.5))) -> ${math::truncate(math::multiplication('100000', math::exp('-0.5')))}, + truncate(multiplication(100000, exp(-0.25))) -> ${math::truncate(math::multiplication('100000', math::exp('-0.25')))}, + truncate(multiplication(100000, exp(0))) -> ${math::truncate(math::multiplication('100000', math::exp('0')))}, + truncate(multiplication(100000, exp(0.25))) -> ${math::truncate(math::multiplication('100000', math::exp('0.25')))}, + truncate(multiplication(100000, exp(0.5))) -> ${math::truncate(math::multiplication('100000', math::exp('0.5')))}, + truncate(multiplication(100000, exp(0.75))) -> ${math::truncate(math::multiplication('100000', math::exp('0.75')))}, + truncate(multiplication(100000, exp(1))) -> ${math::truncate(math::multiplication('100000', math::exp('1')))}, + truncate(multiplication(100000, exp(1.25))) -> ${math::truncate(math::multiplication('100000', math::exp('1.25')))}, + truncate(multiplication(100000, exp(1.5))) -> ${math::truncate(math::multiplication('100000', math::exp('1.5')))}, + truncate(multiplication(100000, exp(1.75))) -> ${math::truncate(math::multiplication('100000', math::exp('1.75')))}, + truncate(multiplication(100000, exp(2))) -> ${math::truncate(math::multiplication('100000', math::exp('2')))}, + truncate(multiplication(100000, exp(2.25))) -> ${math::truncate(math::multiplication('100000', math::exp('2.25')))}, + truncate(multiplication(100000, exp(2.5))) -> ${math::truncate(math::multiplication('100000', math::exp('2.5')))}, + truncate(multiplication(100000, exp(2.75))) -> ${math::truncate(math::multiplication('100000', math::exp('2.75')))}, + truncate(multiplication(100000, exp(3))) -> ${math::truncate(math::multiplication('100000', math::exp('3')))} + truncate(multiplication(100000, exp(-3))) -> 4978, + truncate(multiplication(100000, exp(-2.75))) -> 6392, + truncate(multiplication(100000, exp(-2.5))) -> 8208, + truncate(multiplication(100000, exp(-2.25))) -> 10539, + truncate(multiplication(100000, exp(-2))) -> 13533, + truncate(multiplication(100000, exp(-1.75))) -> 17377, + truncate(multiplication(100000, exp(-1.5))) -> 22313, + truncate(multiplication(100000, exp(-1.25))) -> 28650, + truncate(multiplication(100000, exp(-1))) -> 36787, + truncate(multiplication(100000, exp(-0.75))) -> 47236, + truncate(multiplication(100000, exp(-0.5))) -> 60653, + truncate(multiplication(100000, exp(-0.25))) -> 77880, + truncate(multiplication(100000, exp(0))) -> 100000, + truncate(multiplication(100000, exp(0.25))) -> 128402, + truncate(multiplication(100000, exp(0.5))) -> 164872, + truncate(multiplication(100000, exp(0.75))) -> 211700, + truncate(multiplication(100000, exp(1))) -> 271828, + truncate(multiplication(100000, exp(1.25))) -> 349034, + truncate(multiplication(100000, exp(1.5))) -> 448168, + truncate(multiplication(100000, exp(1.75))) -> 575460, + truncate(multiplication(100000, exp(2))) -> 738905, + truncate(multiplication(100000, exp(2.25))) -> 948773, + truncate(multiplication(100000, exp(2.5))) -> 1218249, + truncate(multiplication(100000, exp(2.75))) -> 1564263, + truncate(multiplication(100000, exp(3))) -> 2008553 + 1 + + + truncate(multiplication(100000, log(0.25))) -> ${math::truncate(math::multiplication('100000', math::log('0.25')))}, + truncate(multiplication(100000, log(0.5))) -> ${math::truncate(math::multiplication('100000', math::log('0.5')))}, + truncate(multiplication(100000, log(0.75))) -> ${math::truncate(math::multiplication('100000', math::log('0.75')))}, + truncate(multiplication(100000, log(1))) -> ${math::truncate(math::multiplication('100000', math::log('1')))}, + truncate(multiplication(100000, log(1.25))) -> ${math::truncate(math::multiplication('100000', math::log('1.25')))}, + truncate(multiplication(100000, log(1.5))) -> ${math::truncate(math::multiplication('100000', math::log('1.5')))}, + truncate(multiplication(100000, log(1.75))) -> ${math::truncate(math::multiplication('100000', math::log('1.75')))}, + truncate(multiplication(100000, log(2))) -> ${math::truncate(math::multiplication('100000', math::log('2')))}, + truncate(multiplication(100000, log(2.25))) -> ${math::truncate(math::multiplication('100000', math::log('2.25')))}, + truncate(multiplication(100000, log(2.5))) -> ${math::truncate(math::multiplication('100000', math::log('2.5')))}, + truncate(multiplication(100000, log(2.75))) -> ${math::truncate(math::multiplication('100000', math::log('2.75')))}, + truncate(multiplication(100000, log(3))) -> ${math::truncate(math::multiplication('100000', math::log('3')))}, + truncate(multiplication(100000, log(3.25))) -> ${math::truncate(math::multiplication('100000', math::log('3.25')))}, + truncate(multiplication(100000, log(3.5))) -> ${math::truncate(math::multiplication('100000', math::log('3.5')))}, + truncate(multiplication(100000, log(3.75))) -> ${math::truncate(math::multiplication('100000', math::log('3.75')))}, + truncate(multiplication(100000, log(4))) -> ${math::truncate(math::multiplication('100000', math::log('4')))} + truncate(multiplication(100000, log(0.25))) -> -138629, + truncate(multiplication(100000, log(0.5))) -> -69314, + truncate(multiplication(100000, log(0.75))) -> -28768, + truncate(multiplication(100000, log(1))) -> 0, + truncate(multiplication(100000, log(1.25))) -> 22314, + truncate(multiplication(100000, log(1.5))) -> 40546, + truncate(multiplication(100000, log(1.75))) -> 55961, + truncate(multiplication(100000, log(2))) -> 69314, + truncate(multiplication(100000, log(2.25))) -> 81093, + truncate(multiplication(100000, log(2.5))) -> 91629, + truncate(multiplication(100000, log(2.75))) -> 101160, + truncate(multiplication(100000, log(3))) -> 109861, + truncate(multiplication(100000, log(3.25))) -> 117865, + truncate(multiplication(100000, log(3.5))) -> 125276, + truncate(multiplication(100000, log(3.75))) -> 132175, + truncate(multiplication(100000, log(4))) -> 138629 + 1 + + + truncate(multiplication(100000, log10(0.25))) -> ${math::truncate(math::multiplication('100000', math::log10('0.25')))}, + truncate(multiplication(100000, log10(0.5))) -> ${math::truncate(math::multiplication('100000', math::log10('0.5')))}, + truncate(multiplication(100000, log10(0.75))) -> ${math::truncate(math::multiplication('100000', math::log10('0.75')))}, + truncate(multiplication(100000, log10(1))) -> ${math::truncate(math::multiplication('100000', math::log10('1')))}, + truncate(multiplication(100000, log10(1.25))) -> ${math::truncate(math::multiplication('100000', math::log10('1.25')))}, + truncate(multiplication(100000, log10(1.5))) -> ${math::truncate(math::multiplication('100000', math::log10('1.5')))}, + truncate(multiplication(100000, log10(1.75))) -> ${math::truncate(math::multiplication('100000', math::log10('1.75')))}, + truncate(multiplication(100000, log10(2))) -> ${math::truncate(math::multiplication('100000', math::log10('2')))}, + truncate(multiplication(100000, log10(2.25))) -> ${math::truncate(math::multiplication('100000', math::log10('2.25')))}, + truncate(multiplication(100000, log10(2.5))) -> ${math::truncate(math::multiplication('100000', math::log10('2.5')))}, + truncate(multiplication(100000, log10(2.75))) -> ${math::truncate(math::multiplication('100000', math::log10('2.75')))}, + truncate(multiplication(100000, log10(3))) -> ${math::truncate(math::multiplication('100000', math::log10('3')))}, + truncate(multiplication(100000, log10(3.25))) -> ${math::truncate(math::multiplication('100000', math::log10('3.25')))}, + truncate(multiplication(100000, log10(3.5))) -> ${math::truncate(math::multiplication('100000', math::log10('3.5')))}, + truncate(multiplication(100000, log10(3.75))) -> ${math::truncate(math::multiplication('100000', math::log10('3.75')))}, + truncate(multiplication(100000, log10(4))) -> ${math::truncate(math::multiplication('100000', math::log10('4')))} + truncate(multiplication(100000, log10(0.25))) -> -60205, + truncate(multiplication(100000, log10(0.5))) -> -30102, + truncate(multiplication(100000, log10(0.75))) -> -12493, + truncate(multiplication(100000, log10(1))) -> 0, + truncate(multiplication(100000, log10(1.25))) -> 9691, + truncate(multiplication(100000, log10(1.5))) -> 17609, + truncate(multiplication(100000, log10(1.75))) -> 24303, + truncate(multiplication(100000, log10(2))) -> 30102, + truncate(multiplication(100000, log10(2.25))) -> 35218, + truncate(multiplication(100000, log10(2.5))) -> 39794, + truncate(multiplication(100000, log10(2.75))) -> 43933, + truncate(multiplication(100000, log10(3))) -> 47712, + truncate(multiplication(100000, log10(3.25))) -> 51188, + truncate(multiplication(100000, log10(3.5))) -> 54406, + truncate(multiplication(100000, log10(3.75))) -> 57403, + truncate(multiplication(100000, log10(4))) -> 60205 + 1 + + + truncate(max(-1, -2)) -> ${math::truncate(math::max('-1', '-2'))}, + truncate(min(-1, -2)) -> ${math::truncate(math::min('-1', '-2'))}, + truncate(max(1, 2)) -> ${math::truncate(math::max('1', '2'))}, + truncate(min(1, 2)) -> ${math::truncate(math::min('1', '2'))} + truncate(max(-1, -2)) -> -1, + truncate(min(-1, -2)) -> -2, + truncate(max(1, 2)) -> 2, + truncate(min(1, 2)) -> 1 + 1 + + + truncate(multiplication(10000, pow(-3, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-3', '2')))}, + truncate(multiplication(10000, pow(-2.75, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-2.75', '2')))}, + truncate(multiplication(10000, pow(-2.5, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-2.5', '2')))}, + truncate(multiplication(10000, pow(-2.25, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-2.25', '2')))}, + truncate(multiplication(10000, pow(-2, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-2', '2')))}, + truncate(multiplication(10000, pow(-1.75, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-1.75', '2')))}, + truncate(multiplication(10000, pow(-1.5, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-1.5', '2')))}, + truncate(multiplication(10000, pow(-1.25, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-1.25', '2')))}, + truncate(multiplication(10000, pow(-1, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-1', '2')))}, + truncate(multiplication(10000, pow(-0.75, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-0.75', '2')))}, + truncate(multiplication(10000, pow(-0.5, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-0.5', '2')))}, + truncate(multiplication(10000, pow(-0.25, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('-0.25', '2')))}, + truncate(multiplication(10000, pow(0, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('0', '2')))}, + truncate(multiplication(10000, pow(0.25, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('0.25', '2')))}, + truncate(multiplication(10000, pow(0.5, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('0.5', '2')))}, + truncate(multiplication(10000, pow(0.75, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('0.75', '2')))}, + truncate(multiplication(10000, pow(1, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('1', '2')))}, + truncate(multiplication(10000, pow(1.25, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('1.25', '2')))}, + truncate(multiplication(10000, pow(1.5, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('1.5', '2')))}, + truncate(multiplication(10000, pow(1.75, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('1.75', '2')))}, + truncate(multiplication(10000, pow(2, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('2', '2')))}, + truncate(multiplication(10000, pow(2.25, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('2.25', '2')))}, + truncate(multiplication(10000, pow(2.5, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('2.5', '2')))}, + truncate(multiplication(10000, pow(2.75, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('2.75', '2')))}, + truncate(multiplication(10000, pow(3, 2))) -> ${math::truncate(math::multiplication('10000', math::pow('3', '2')))} + truncate(multiplication(10000, pow(-3, 2))) -> 90000, + truncate(multiplication(10000, pow(-2.75, 2))) -> 75625, + truncate(multiplication(10000, pow(-2.5, 2))) -> 62500, + truncate(multiplication(10000, pow(-2.25, 2))) -> 50625, + truncate(multiplication(10000, pow(-2, 2))) -> 40000, + truncate(multiplication(10000, pow(-1.75, 2))) -> 30625, + truncate(multiplication(10000, pow(-1.5, 2))) -> 22500, + truncate(multiplication(10000, pow(-1.25, 2))) -> 15625, + truncate(multiplication(10000, pow(-1, 2))) -> 10000, + truncate(multiplication(10000, pow(-0.75, 2))) -> 5625, + truncate(multiplication(10000, pow(-0.5, 2))) -> 2500, + truncate(multiplication(10000, pow(-0.25, 2))) -> 625, + truncate(multiplication(10000, pow(0, 2))) -> 0, + truncate(multiplication(10000, pow(0.25, 2))) -> 625, + truncate(multiplication(10000, pow(0.5, 2))) -> 2500, + truncate(multiplication(10000, pow(0.75, 2))) -> 5625, + truncate(multiplication(10000, pow(1, 2))) -> 10000, + truncate(multiplication(10000, pow(1.25, 2))) -> 15625, + truncate(multiplication(10000, pow(1.5, 2))) -> 22500, + truncate(multiplication(10000, pow(1.75, 2))) -> 30625, + truncate(multiplication(10000, pow(2, 2))) -> 40000, + truncate(multiplication(10000, pow(2.25, 2))) -> 50625, + truncate(multiplication(10000, pow(2.5, 2))) -> 62500, + truncate(multiplication(10000, pow(2.75, 2))) -> 75625, + truncate(multiplication(10000, pow(3, 2))) -> 90000 + 1 + + + ${math::sign('-2')} ${math::sign('-1.5')} ${math::sign('-1')} ${math::sign('-0.5')} + ${math::sign('0')} ${math::sign('0.5')} ${math::sign('1')} ${math::sign('1.5')} ${math::sign('2')} + -1 -1 -1 -1 1 1 1 1 1 + 1 + + + truncate(multiplication(100000, sin(-6.28318531))) -> ${math::truncate(math::multiplication('100000', math::sin('-6.28318531')))}, + truncate(multiplication(100000, sin(-5.49778714))) -> ${math::truncate(math::multiplication('100000', math::sin('-5.49778714')))}, + truncate(multiplication(100000, sin(-4.71238898))) -> ${math::truncate(math::multiplication('100000', math::sin('-4.71238898')))}, + truncate(multiplication(100000, sin(-3.92699082))) -> ${math::truncate(math::multiplication('100000', math::sin('-3.92699082')))}, + truncate(multiplication(100000, sin(-3.14159265))) -> ${math::truncate(math::multiplication('100000', math::sin('-3.14159265')))}, + truncate(multiplication(100000, sin(-2.35619449))) -> ${math::truncate(math::multiplication('100000', math::sin('-2.35619449')))}, + truncate(multiplication(100000, sin(-1.57079633))) -> ${math::truncate(math::multiplication('100000', math::sin('-1.57079633')))}, + truncate(multiplication(100000, sin(-0.78539816))) -> ${math::truncate(math::multiplication('100000', math::sin('-0.78539816')))}, + truncate(multiplication(100000, sin(0))) -> ${math::truncate(math::multiplication('100000', math::sin('0')))}, + truncate(multiplication(100000, sin(0.78539816))) -> ${math::truncate(math::multiplication('100000', math::sin('0.78539816')))}, + truncate(multiplication(100000, sin(1.57079633))) -> ${math::truncate(math::multiplication('100000', math::sin('1.57079633')))}, + truncate(multiplication(100000, sin(2.35619449))) -> ${math::truncate(math::multiplication('100000', math::sin('2.35619449')))}, + truncate(multiplication(100000, sin(3.14159265))) -> ${math::truncate(math::multiplication('100000', math::sin('3.14159265')))}, + truncate(multiplication(100000, sin(3.92699082))) -> ${math::truncate(math::multiplication('100000', math::sin('3.92699082')))}, + truncate(multiplication(100000, sin(4.71238898))) -> ${math::truncate(math::multiplication('100000', math::sin('4.71238898')))}, + truncate(multiplication(100000, sin(5.49778714))) -> ${math::truncate(math::multiplication('100000', math::sin('5.49778714')))}, + truncate(multiplication(100000, sin(6.28318531))) -> ${math::truncate(math::multiplication('100000', math::sin('6.28318531')))} + truncate(multiplication(100000, sin(-6.28318531))) -> 0, + truncate(multiplication(100000, sin(-5.49778714))) -> 70710, + truncate(multiplication(100000, sin(-4.71238898))) -> 100000, + truncate(multiplication(100000, sin(-3.92699082))) -> 70710, + truncate(multiplication(100000, sin(-3.14159265))) -> 0, + truncate(multiplication(100000, sin(-2.35619449))) -> -70710, + truncate(multiplication(100000, sin(-1.57079633))) -> -100000, + truncate(multiplication(100000, sin(-0.78539816))) -> -70710, + truncate(multiplication(100000, sin(0))) -> 0, + truncate(multiplication(100000, sin(0.78539816))) -> 70710, + truncate(multiplication(100000, sin(1.57079633))) -> 100000, + truncate(multiplication(100000, sin(2.35619449))) -> 70710, + truncate(multiplication(100000, sin(3.14159265))) -> 0, + truncate(multiplication(100000, sin(3.92699082))) -> -70710, + truncate(multiplication(100000, sin(4.71238898))) -> -100000, + truncate(multiplication(100000, sin(5.49778714))) -> -70710, + truncate(multiplication(100000, sin(6.28318531))) -> 0 + 1 + + + truncate(sinh(-6.28318531)) -> ${math::truncate(math::sinh('-6.28318531'))}, + truncate(sinh(-5.49778714)) -> ${math::truncate(math::sinh('-5.49778714'))}, + truncate(sinh(-4.71238898)) -> ${math::truncate(math::sinh('-4.71238898'))}, + truncate(sinh(-3.92699082)) -> ${math::truncate(math::sinh('-3.92699082'))}, + truncate(sinh(-3.14159265)) -> ${math::truncate(math::sinh('-3.14159265'))}, + truncate(sinh(-2.35619449)) -> ${math::truncate(math::sinh('-2.35619449'))}, + truncate(sinh(-1.57079633)) -> ${math::truncate(math::sinh('-1.57079633'))}, + truncate(sinh(-0.78539816)) -> ${math::truncate(math::sinh('-0.78539816'))}, + truncate(sinh(0)) -> ${math::truncate(math::sinh('0'))}, + truncate(sinh(0.78539816)) -> ${math::truncate(math::sinh('0.78539816'))}, + truncate(sinh(1.57079633)) -> ${math::truncate(math::sinh('1.57079633'))}, + truncate(sinh(2.35619449)) -> ${math::truncate(math::sinh('2.35619449'))}, + truncate(sinh(3.14159265)) -> ${math::truncate(math::sinh('3.14159265'))}, + truncate(sinh(3.92699082)) -> ${math::truncate(math::sinh('3.92699082'))}, + truncate(sinh(4.71238898)) -> ${math::truncate(math::sinh('4.71238898'))}, + truncate(sinh(5.49778714)) -> ${math::truncate(math::sinh('5.49778714'))}, + truncate(sinh(6.28318531)) -> ${math::truncate(math::sinh('6.28318531'))} + truncate(sinh(-6.28318531)) -> -267, + truncate(sinh(-5.49778714)) -> -122, + truncate(sinh(-4.71238898)) -> -55, + truncate(sinh(-3.92699082)) -> -25, + truncate(sinh(-3.14159265)) -> -11, + truncate(sinh(-2.35619449)) -> -5, + truncate(sinh(-1.57079633)) -> -2, + truncate(sinh(-0.78539816)) -> 0, + truncate(sinh(0)) -> 0, + truncate(sinh(0.78539816)) -> 0, + truncate(sinh(1.57079633)) -> 2, + truncate(sinh(2.35619449)) -> 5, + truncate(sinh(3.14159265)) -> 11, + truncate(sinh(3.92699082)) -> 25, + truncate(sinh(4.71238898)) -> 55, + truncate(sinh(5.49778714)) -> 122, + truncate(sinh(6.28318531)) -> 267 + 1 + + + truncate(multiplication(10, sqrt(0))) -> ${math::truncate(math::multiplication('10', math::sqrt('0')))}, + truncate(multiplication(10, sqrt(0.25))) -> ${math::truncate(math::multiplication('10', math::sqrt('0.25')))}, + truncate(multiplication(10, sqrt(1))) -> ${math::truncate(math::multiplication('10', math::sqrt('1')))}, + truncate(multiplication(10, sqrt(2.25))) -> ${math::truncate(math::multiplication('10', math::sqrt('2.25')))}, + truncate(multiplication(10, sqrt(4))) -> ${math::truncate(math::multiplication('10', math::sqrt('4')))} + truncate(multiplication(10, sqrt(0))) -> 0, + truncate(multiplication(10, sqrt(0.25))) -> 5, + truncate(multiplication(10, sqrt(1))) -> 10, + truncate(multiplication(10, sqrt(2.25))) -> 15, + truncate(multiplication(10, sqrt(4))) -> 20 + 1 + + + near(tan(0), 0) -> ${math::near(math::tan('0'), '0')}, + near(tan(PI / 6), 0.577350) -> ${math::near(math::tan(math::division(math::PI(), '6')), '0.577350', '0.000001')}, + near(tan(PI / 4), 1) -> ${math::near(math::tan(math::division(math::PI(), '4')), '1')}, + near(tan(PI / 3), 1.732050) -> ${math::near(math::tan(math::division(math::PI(), '3')), '1.732050', '0.000001')}, + near(tan(PI), 0) -> ${math::near(math::tan(math::PI()), '0', '0.000001')}, + near(tan(2 * PI), 0) -> ${math::near(math::tan(math::multiplication('2', math::PI())), '0', '0.000001')} + + near(tan(0), 0) -> True, + near(tan(PI / 6), 0.577350) -> True, + near(tan(PI / 4), 1) -> True, + near(tan(PI / 3), 1.732050) -> True, + near(tan(PI), 0) -> True, + near(tan(2 * PI), 0) -> True + 1 + + + truncate(multiplication(10, tanh(-5))) -> ${math::truncate(math::multiplication('10', math::tanh('-5')))}, + truncate(multiplication(10, tanh(-4))) -> ${math::truncate(math::multiplication('10', math::tanh('-4')))}, + truncate(multiplication(10, tanh(-3))) -> ${math::truncate(math::multiplication('10', math::tanh('-3')))}, + truncate(multiplication(10, tanh(-2))) -> ${math::truncate(math::multiplication('10', math::tanh('-2')))}, + truncate(multiplication(10, tanh(-1))) -> ${math::truncate(math::multiplication('10', math::tanh('-1')))}, + truncate(multiplication(10, tanh(0))) -> ${math::truncate(math::multiplication('10', math::tanh('0')))}, + truncate(multiplication(10, tanh(1))) -> ${math::truncate(math::multiplication('10', math::tanh('1')))}, + truncate(multiplication(10, tanh(2))) -> ${math::truncate(math::multiplication('10', math::tanh('2')))}, + truncate(multiplication(10, tanh(3))) -> ${math::truncate(math::multiplication('10', math::tanh('3')))}, + truncate(multiplication(10, tanh(4))) -> ${math::truncate(math::multiplication('10', math::tanh('4')))}, + truncate(multiplication(10, tanh(5))) -> ${math::truncate(math::multiplication('10', math::tanh('5')))} + truncate(multiplication(10, tanh(-5))) -> -9, + truncate(multiplication(10, tanh(-4))) -> -9, + truncate(multiplication(10, tanh(-3))) -> -9, + truncate(multiplication(10, tanh(-2))) -> -9, + truncate(multiplication(10, tanh(-1))) -> -7, + truncate(multiplication(10, tanh(0))) -> 0, + truncate(multiplication(10, tanh(1))) -> 7, + truncate(multiplication(10, tanh(2))) -> 9, + truncate(multiplication(10, tanh(3))) -> 9, + truncate(multiplication(10, tanh(4))) -> 9, + truncate(multiplication(10, tanh(5))) -> 9 + 1 + + + near(cot(PI / 6), 1.732050) -> ${math::near(math::cot(math::division(math::PI(), '6')), '1.732050', '0.000001')}, + near(cot(PI / 4), 1) -> ${math::near(math::cot(math::division(math::PI(), '4')), '1', '0.000001')}, + near(cot(PI / 3), 0.577350) -> ${math::near(math::cot(math::division(math::PI(), '3')), '0.577350', '0.000001')}, + near(cot(PI / 2), 0) -> ${math::near(math::cot(math::division(math::PI(), '2')), '0', '0.000001')}, + near(cot(3 * PI / 2), 0) -> ${math::near(math::cot(math::division(math::multiplication('3', math::PI()), '2')), '0', '0.000001')} + near(cot(PI / 6), 1.732050) -> True, + near(cot(PI / 4), 1) -> True, + near(cot(PI / 3), 0.577350) -> True, + near(cot(PI / 2), 0) -> True, + near(cot(3 * PI / 2), 0) -> True + 1 + + + truncate(multiplication(10, coth(-5))) -> ${math::truncate(math::multiplication('10', math::coth('-5')))}, + truncate(multiplication(10, coth(-4))) -> ${math::truncate(math::multiplication('10', math::coth('-4')))}, + truncate(multiplication(10, coth(-3))) -> ${math::truncate(math::multiplication('10', math::coth('-3')))}, + truncate(multiplication(10, coth(-2))) -> ${math::truncate(math::multiplication('10', math::coth('-2')))}, + truncate(multiplication(10, coth(-1))) -> ${math::truncate(math::multiplication('10', math::coth('-1')))}, + truncate(multiplication(10, coth(1))) -> ${math::truncate(math::multiplication('10', math::coth('1')))}, + truncate(multiplication(10, coth(2))) -> ${math::truncate(math::multiplication('10', math::coth('2')))}, + truncate(multiplication(10, coth(3))) -> ${math::truncate(math::multiplication('10', math::coth('3')))}, + truncate(multiplication(10, coth(4))) -> ${math::truncate(math::multiplication('10', math::coth('4')))}, + truncate(multiplication(10, coth(5))) -> ${math::truncate(math::multiplication('10', math::coth('5')))} + truncate(multiplication(10, coth(-5))) -> -10, + truncate(multiplication(10, coth(-4))) -> -10, + truncate(multiplication(10, coth(-3))) -> -10, + truncate(multiplication(10, coth(-2))) -> -10, + truncate(multiplication(10, coth(-1))) -> -13, + truncate(multiplication(10, coth(1))) -> 13, + truncate(multiplication(10, coth(2))) -> 10, + truncate(multiplication(10, coth(3))) -> 10, + truncate(multiplication(10, coth(4))) -> 10, + truncate(multiplication(10, coth(5))) -> 10 + 1 + + + truncate(-1) -> ${math::truncate('-1')}, + truncate(-1.5) -> ${math::truncate('-1.5')}, + truncate(0) -> ${math::truncate('0')}, + truncate(0.0) -> ${math::truncate('0.0')}, + truncate(1) -> ${math::truncate('1')}, + truncate(1.5) -> ${math::truncate('1.5')} + truncate(-1) -> -1, + truncate(-1.5) -> -1, + truncate(0) -> 0, + truncate(0.0) -> 0, + truncate(1) -> 1, + truncate(1.5) -> 1 + 1 + + + near(PI, 3.1415926535897931) -> ${math::near(math::PI(), '3.1415926535897931', '0.000001')}, + near(E, 2.7182818284590451) -> ${math::near(math::E(), '2.7182818284590451', '0.000001')} + near(PI, 3.1415926535897931) -> True, + near(E, 2.7182818284590451) -> True + 1 + + + -2 * PI -> ${math::truncate(math::degrees(math::multiplication('-2', math::PI())))}, + -PI - 3 * PI/4 -> ${math::truncate(math::degrees(math::subtraction(math::multiplication('-1', math::PI()), math::division(math::multiplication('3', math::PI()), '4'))))}, + -PI - PI/2 -> ${math::truncate(math::degrees(math::subtraction(math::multiplication('-1', math::PI()), math::division(math::PI(), '2'))))}, + -PI - PI/4 -> ${math::truncate(math::degrees(math::subtraction(math::multiplication('-1', math::PI()), math::division(math::PI(), '4'))))}, + -PI -> ${math::truncate(math::degrees(math::multiplication('-1', math::PI())))}, + -3 * PI/4 -> ${math::truncate(math::degrees(math::multiplication('-1', math::division(math::multiplication('3', math::PI()), '4'))))}, + -PI/2 -> ${math::truncate(math::degrees(math::multiplication('-1', math::division(math::PI(), '2'))))}, + -PI/4 -> ${math::truncate(math::degrees(math::multiplication('-1', math::division(math::PI(), '4'))))}, + 0 -> ${math::truncate(math::degrees('0'))}, + PI/4 -> ${math::truncate(math::degrees(math::division(math::PI(), '4')))}, + PI/2 -> ${math::truncate(math::degrees(math::division(math::PI(), '2')))}, + 3 * PI/4 -> ${math::truncate(math::degrees(math::division(math::multiplication('3', math::PI()), '4')))}, + PI -> ${math::truncate(math::degrees(math::PI()))}, + PI + PI/4 -> ${math::truncate(math::degrees(math::addition(math::PI(), math::division(math::PI(), '4'))))}, + PI + PI/2 -> ${math::truncate(math::degrees(math::addition(math::PI(), math::division(math::PI(), '2'))))}, + PI + 3 * PI/4 -> ${math::truncate(math::degrees(math::addition(math::PI(), math::division(math::multiplication('3', math::PI()), '4'))))}, + 2 * PI -> ${math::truncate(math::degrees(math::multiplication('2', math::PI())))} + -2 * PI -> -360, + -PI - 3 * PI/4 -> -315, + -PI - PI/2 -> -270, + -PI - PI/4 -> -225, + -PI -> -180, + -3 * PI/4 -> -135, + -PI/2 -> -90, + -PI/4 -> -45, + 0 -> 0, + PI/4 -> 45, + PI/2 -> 90, + 3 * PI/4 -> 135, + PI -> 180, + PI + PI/4 -> 225, + PI + PI/2 -> 270, + PI + 3 * PI/4 -> 315, + 2 * PI -> 360 + 1 + + + -360 -> ${math::truncate(math::multiplication('100000', math::radians('-360')))}, + -315 -> ${math::truncate(math::multiplication('100000', math::radians('-315')))}, + -270 -> ${math::truncate(math::multiplication('100000', math::radians('-270')))}, + -225 -> ${math::truncate(math::multiplication('100000', math::radians('-225')))}, + -180 -> ${math::truncate(math::multiplication('100000', math::radians('-180')))}, + -135 -> ${math::truncate(math::multiplication('100000', math::radians('-135')))}, + -90 -> ${math::truncate(math::multiplication('100000', math::radians('-90')))}, + -45 -> ${math::truncate(math::multiplication('100000', math::radians('-45')))}, + 0 -> ${math::truncate(math::multiplication('100000', math::radians('0')))}, + 45 -> ${math::truncate(math::multiplication('100000', math::radians('45')))}, + 90 -> ${math::truncate(math::multiplication('100000', math::radians('90')))}, + 135 -> ${math::truncate(math::multiplication('100000', math::radians('135')))}, + 180 -> ${math::truncate(math::multiplication('100000', math::radians('180')))}, + 225 -> ${math::truncate(math::multiplication('100000', math::radians('225')))}, + 270 -> ${math::truncate(math::multiplication('100000', math::radians('270')))}, + 315 -> ${math::truncate(math::multiplication('100000', math::radians('315')))}, + 360 -> ${math::truncate(math::multiplication('100000', math::radians('360')))} + -360 -> -628318, + -315 -> -549778, + -270 -> -471238, + -225 -> -392699, + -180 -> -314159, + -135 -> -235619, + -90 -> -157079, + -45 -> -78539, + 0 -> 0, + 45 -> 78539, + 90 -> 157079, + 135 -> 235619, + 180 -> 314159, + 225 -> 392699, + 270 -> 471238, + 315 -> 549778, + 360 -> 628318 + 1 + + + 3 + 4 -> ${math::truncate(math::addition('3', '4'))}, + 3 - 4 -> ${math::truncate(math::addition('3', '-4'))} + 3 + 4 -> 7, + 3 - 4 -> -1 + 1 + + + 3 - 4 -> ${math::truncate(math::subtraction('3', '4'))}, + 3 + 4 -> ${math::truncate(math::subtraction('3', '-4'))} + 3 - 4 -> -1, + 3 + 4 -> 7 + 1 + + + 3 * 4 -> ${math::truncate(math::multiplication('3', '4'))}, + 3 * -4 -> ${math::truncate(math::multiplication('3', '-4'))} + 3 * 4 -> 12, + 3 * -4 -> -12 + 1 + + + 9 / 3 -> ${math::truncate(math::division('9', '3'))}, + 9 / -3 -> ${math::truncate(math::division('9', '-3'))} + 9 / 3 -> 3, + 9 / -3 -> -3 + 1 + + + empty(double_epsilon()) -> ${string::empty(math::double_epsilon())}, + near(1, 2) -> ${math::near('1', '2')}, + near(1, 2, 0.000001) -> ${math::near('1', '2', '0.000001')}, + less(1, 2) -> ${math::less('1', '2')}, + greater(1, 2) -> ${math::greater('1', '2')} + empty(double_epsilon()) -> False, + near(1, 2) -> False, + near(1, 2, 0.000001) -> False, + less(1, 2) -> True, + greater(1, 2) -> False + 1 + + + The quadratic polynomial + x^2 - 16 = 0 + have next solution(s) + X1 -> + ${math::truncate(math::division(math::addition(math::multiplication('-1', '0'), + math::sqrt(math::subtraction(math::pow('0', '2'), math::multiplication('4', math::multiplication('1', '-16'))))), math::multiplication('2', '1'))))} + X2 -> + ${math::truncate(math::division(math::subtraction(math::multiplication('-1', '0'), + math::sqrt(math::subtraction(math::pow('0', '2'), math::multiplication('4', math::multiplication('1', '-16'))))), math::multiplication('2', '1'))))} + The quadratic polynomial + x^2 - 16 = 0 + have next solution(s) + X1 -> 4 + X2 -> -4 + 1 + + + format-to-string -> ${string::empty(datetime::format-to-string('0', '%A %c'))} + format-to-string -> False + 1 + + + to-string(01.09.2019 2:03:04) -> ${datetime::to-string('01.09.2019 2:03:04')} + to-string(01.09.2019 2:03:04) -> 01.09.2019 2:03:04 + 1 + + + parse(01.09.2019 2:03:04) -> ${datetime::parse('01.09.2019 2:03:04')} + parse(01.09.2019 2:03:04) -> 01.09.2019 2:03:04 + 1 + + + get-day(1569840495) -> ${datetime::get-day('1569840495')} + get-day(1569840495) -> 30 + 1 + + + get-day-of-week(1569840495) -> ${datetime::get-day-of-week('1569840495')} + get-day-of-week(1577059200) -> ${datetime::get-day-of-week('1577059200')} + get-day-of-week(1569840495) -> 1 + get-day-of-week(1577059200) -> 1 + 1 + + + get-day-of-year(1569840495) -> ${datetime::get-day-of-year('1569840495')} + get-day-of-year(1569840495) -> 273 + 1 + + + get-days-in-month(2016, 2) -> ${datetime::get-days-in-month('2016', '2')}, + get-days-in-month(2019, 2) -> ${datetime::get-days-in-month('2019', '2')} + get-days-in-month(2016, 2) -> 29, + get-days-in-month(2019, 2) -> 28 + 1 + + + get-hour(1569840495) -> ${datetime::get-hour('1569840495')} + get-hour(1569840495) -> 10 + 1 + + + get-minute(1569840495) -> ${datetime::get-minute('1569840495')} + get-minute(1569840495) -> 48 + 1 + + + get-month(1569840495) -> ${datetime::get-month('1569840495')} + get-month(1569840495) -> 9 + 1 + + + get-second(1569840495) -> ${datetime::get-second('1569840495')} + get-second(1569840495) -> 15 + 1 + + + get-year(1569840495) -> ${datetime::get-year('1569840495')} + get-year(1569840495) -> 2019 + 1 + + + is-leap-year(2016) -> ${datetime::is-leap-year('2016')}, + is-leap-year(2019) -> ${datetime::is-leap-year('2019')} + is-leap-year(2016) -> True, + is-leap-year(2019) -> False + 1 + + + empty(ticks()) -> ${string::empty(datetime::ticks())} + empty(ticks()) -> False + 1 + + + empty(now-utc()) -> ${string::empty(datetime::now-utc())} + empty(now-utc()) -> False + 1 + + + empty(now()) -> ${string::empty(datetime::now())} + empty(now()) -> False + 1 + + + from-input(30.09.2019 10:48:15) -> ${datetime::from-input('30.09.2019 10:48:15')} + from-input(30.09.2019 10:48:15) -> 1569840495 + 1 + + + from-days(1) -> ${timespan::from-days('1')} + from-days(1) -> 86400 + 1 + + + from-hours(1) -> ${timespan::from-hours('1')} + from-hours(1) -> 3600 + 1 + + + from-milliseconds(10000) -> ${timespan::from-milliseconds('10000')} + from-milliseconds(10000) -> 10 + 1 + + + from-minutes(1) -> ${timespan::from-minutes('1')} + from-minutes(1) -> 60 + 1 + + + from-seconds(1) -> ${timespan::from-seconds('1')} + from-seconds(1) -> 1 + 1 + + + empty(from-ticks(100000000)) -> ${string::empty(timespan::from-ticks('100000000'))} + empty(from-ticks(100000000)) -> False + 1 + + + get-days(86400) -> ${timespan::get-days('86400')} + get-days(86400) -> 1 + 1 + + + get-hours(3600) -> ${timespan::get-hours('3600')} + get-hours(3600) -> 1 + 1 + + + get-minutes(60) -> ${timespan::get-minutes('60')} + get-minutes(60) -> 1 + 1 + + + parse(60) -> ${timespan::parse('60')} + parse(60) -> 60 + 1 + + + to-string(60) -> ${timespan::to-string('60')} + to-string(60) -> 60 + 1 + + + get-seconds(60) -> ${timespan::get-seconds('60')} + get-seconds(60) -> 60 + 1 + + + get-total-seconds(60) -> ${timespan::get-total-seconds('60')} + get-total-seconds(60) -> 60 + 1 + + + empty(get-ticks(10)) -> ${string::empty(timespan::get-ticks('10'))} + empty(get-ticks(10)) -> False + 1 + + + get-total-days(86400) -> ${math::truncate(timespan::get-total-days('86400'))} + get-total-days(86400) -> 1 + 1 + + + get-total-hours(3600) -> ${math::truncate(timespan::get-total-hours('3600'))} + get-total-hours(3600) -> 1 + 1 + + + get-total-milliseconds(1) -> ${timespan::get-total-milliseconds('1')} + get-total-milliseconds(1) -> 1000 + 1 + + + get-total-minutes(60) -> ${math::truncate(timespan::get-total-minutes('60'))} + get-total-minutes(60) -> 1 + 1 + + + ${long::to-string('0')} == ${int64::to-string('0')} + 0 == 0 + 1 + + + ${long::to-string('9223372036854775807')} == ${int64::to-string('9223372036854775807')} + 9223372036854775807 == 9223372036854775807 + 1 + + + ${long::to-string('-9223372036854775808')} == ${int64::to-string('-9223372036854775808')} + -9223372036854775808 == -9223372036854775808 + 1 + + + ${version::less('1.0', '2.0')} + True + 1 + + + ${version::less('2.0', '2.0')} + False + 1 + + + ${version::greater('2.0', '2.0')} + False + 1 + + + ${version::greater('2.0', '1.0')} + True + 1 + + + exists('attrib') -> ${task::exists('attrib')} + exists('call') -> ${task::exists('call')} + exists('choose') -> ${task::exists('choose')} + exists('copy') -> ${task::exists('copy')} + exists('delete') -> ${task::exists('delete')} + exists('description') -> ${task::exists('description')} + exists('echo') -> ${task::exists('echo')} + exists('exec') -> ${task::exists('exec')} + exists('fail') -> ${task::exists('fail')} + exists('foreach') -> ${task::exists('foreach')} + exists('if') -> ${task::exists('if')} + exists('include') -> ${task::exists('include')} + exists('loadfile') -> ${task::exists('loadfile')} + exists('loadtasks') -> ${task::exists('loadtasks')} + exists('mkdir') -> ${task::exists('mkdir')} + exists('move') -> ${task::exists('move')} + exists('program') -> ${task::exists('program')} + exists('project') -> ${task::exists('project')} + exists('property') -> ${task::exists('property')} + exists('setenv') -> ${task::exists('setenv')} + exists('sleep') -> ${task::exists('sleep')} + exists('target') -> ${task::exists('target')} + exists('touch') -> ${task::exists('touch')} + exists('trycatch') -> ${task::exists('trycatch')} + exists('tstamp') -> ${task::exists('tstamp')} + exists('uptodate') -> ${task::exists('uptodate')} + exists('attrib') -> True + exists('call') -> True + exists('choose') -> True + exists('copy') -> True + exists('delete') -> True + exists('description') -> True + exists('echo') -> True + exists('exec') -> True + exists('fail') -> True + exists('foreach') -> True + exists('if') -> True + exists('include') -> False + exists('loadfile') -> True + exists('loadtasks') -> True + exists('mkdir') -> True + exists('move') -> True + exists('program') -> True + exists('project') -> True + exists('property') -> True + exists('setenv') -> False + exists('sleep') -> True + exists('target') -> True + exists('touch') -> True + exists('trycatch') -> True + exists('tstamp') -> False + exists('uptodate') -> False + 1 + + + exists('build') -> ${target::exists('build')} + exists('build') -> False + 1 + + + exists() -> ${target::exists()} + exists() -> + 0 + + + get-current-target() -> ${target::get-current-target()} + get-current-target() -> + 0 + + + has-executed('build') -> ${target::has-executed('build')} + has-executed('build') -> False + 1 + + + has-executed() -> ${target::has-executed()} + has-executed() -> + 0 + + + blake2b-160('') -> ${hash::bytes-to-string(hash::blake2b('', '160'))} + blake2b-160('') -> 3345524abf6bbe1809449224b5972c41790b6cf2 + 1 + + + blake2b-256('') -> ${hash::bytes-to-string(hash::blake2b('', '256'))} + blake2b-256('') -> 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8 + 1 + + + blake2b-256('') -> ${hash::bytes-to-string(hash::blake2b(''))} + blake2b-256('') -> 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8 + 1 + + + blake2b-384('') -> ${hash::bytes-to-string(hash::blake2b('', '384'))} + blake2b-384('') -> b32811423377f52d7862286ee1a72ee540524380fda1724a6f25d7978c6fd3244a6caf0498812673c5e05ef583825100 + 1 + + + blake2b-512('') -> ${hash::bytes-to-string(hash::blake2b('', '512'))} + blake2b-512('') -> 786a02f742015903c6c6fd852552d272912f4740e15847618a86e217f71f5419d25e1031afee585313896444934eb04b903a685b1448b755d56f701afe9be2ce + 1 + + + blake3('') -> ${hash::bytes-to-string(hash::blake3('', '256'))} + blake3('') -> af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262 + 1 + + + blake3('') -> ${hash::bytes-to-string(hash::blake3(''))} + blake3('') -> af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262 + 1 + + + bytes-to-string('') -> ${hash::bytes-to-string('')} + bytes-to-string('') -> + 1 + + + bytes-to-string(' ') -> ${hash::bytes-to-string(' ')} + bytes-to-string(' ') -> 090a0d + 1 + + + crc32('') -> ${hash::bytes-to-string(hash::crc32(''))} + crc32('') -> 00000000 + 1 + + + crc32('', 'decreasing') -> ${hash::bytes-to-string(hash::crc32('', 'decreasing'))} + crc32('', 'decreasing') -> 00000000 + 1 + + + crc32('', 'increasing') -> ${hash::bytes-to-string(hash::crc32('', 'increasing'))} + crc32('', 'increasing') -> 00000000 + 1 + + + crc32('The quick brown fox jumps over the lazy dog') -> ${hash::bytes-to-string(hash::crc32('The quick brown fox jumps over the lazy dog'))} + crc32('The quick brown fox jumps over the lazy dog') -> 39a34f41 + 1 + + + crc32('The quick brown fox jumps over the lazy dog', 'decreasing') -> ${hash::bytes-to-string(hash::crc32('The quick brown fox jumps over the lazy dog', 'decreasing'))} + crc32('The quick brown fox jumps over the lazy dog', 'decreasing') -> 414fa339 + 1 + + + crc32('The quick brown fox jumps over the lazy dog', 'increasing') -> ${hash::bytes-to-string(hash::crc32('The quick brown fox jumps over the lazy dog', 'increasing'))} + crc32('The quick brown fox jumps over the lazy dog', 'increasing') -> 39a34f41 + 1 + + + hash::keccak-224('') -> ${hash::bytes-to-string(hash::keccak('', '224'))} + hash::keccak-224('') -> f71837502ba8e10837bdd8d365adb85591895602fc552b48b7390abd + 1 + + + hash::keccak-256('') -> ${hash::bytes-to-string(hash::keccak('', '256'))} + hash::keccak-256('') -> c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 + 1 + + + hash::keccak-256('') -> ${hash::bytes-to-string(hash::keccak(''))} + hash::keccak-256('') -> c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 + 1 + + + hash::keccak-384('') -> ${hash::bytes-to-string(hash::keccak('', '384'))} + hash::keccak-384('') -> 2c23146a63a29acf99e73b88f8c24eaa7dc60aa771780ccc006afbfa8fe2479b2dd2b21362337441ac12b515911957ff + 1 + + + hash::keccak-512('') -> ${hash::bytes-to-string(hash::keccak('', '512'))} + hash::keccak-512('') -> 0eab42de4c3ceb9235fc91acffe746b29c29a8c366b7c60e4e67c466f36a4304c00fa9caf9d87976ba469bcbe06713b435f091ef2769fb160cdab33d3670680e + 1 + + + hash::sha3-224('') -> ${hash::bytes-to-string(hash::sha3('', '224'))} + hash::sha3-224('') -> 6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7 + 1 + + + hash::sha3-256('') -> ${hash::bytes-to-string(hash::sha3('', '256'))} + hash::sha3-256('') -> a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a + 1 + + + hash::sha3-256('') -> ${hash::bytes-to-string(hash::sha3(''))} + hash::sha3-256('') -> a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a + 1 + + + hash::sha3-384('') -> ${hash::bytes-to-string(hash::sha3('', '384'))} + hash::sha3-384('') -> 0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004 + 1 + + + hash::sha3-512('') -> ${hash::bytes-to-string(hash::sha3('', '512'))} + hash::sha3-512('') -> a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26 + 1 + + + ${string::empty( + + directory::enumerate-file-system-entries(path::get-temp-path(), 'directory') + directory::enumerate-file-system-entries(path::get-temp-path(), 'file') + directory::enumerate-file-system-entries(path::get-temp-path(), 'all') + + directory::enumerate-file-system-entries(path::get-temp-path(), 'directory', 'false') + directory::enumerate-file-system-entries(path::get-temp-path(), 'file', 'false') + directory::enumerate-file-system-entries(path::get-temp-path(), 'all', 'false') + + )} + False + 1 + + + exists(get-temp-path()) -> ${directory::exists(path::get-temp-path())} + exists(get-temp-path()) -> True + 1 + + + ${string::empty( + directory::get-creation-time(path::get-temp-path()) + directory::get-creation-time-utc(path::get-temp-path()) + )} + False + 1 + + + ${string::empty( + directory::get-last-access-time(path::get-temp-path()) + directory::get-last-access-time-utc(path::get-temp-path()) + )} + False + 1 + + + ${string::empty( + directory::get-last-write-time(path::get-temp-path()) + directory::get-last-write-time-utc(path::get-temp-path()) + )} + False + 1 + + + ${string::empty( + directory::get-directory-root(path::get-temp-path()) + )} + False + 1 + + + ${string::empty( + directory::get-parent-directory(environment::get-folder-path('Personal')) + )} + False + 1 + + + ${string::empty( + directory::get-current-directory() + )} + False + 1 + + + ${string::empty( + directory::get-logical-drives()) + )} + False + 1 + + + ${string::contains('my ${file} is here', '${file}')} + True + 1 + + + ${string::contains('my ${current file} is here', '${file}')} + False + 1 + + + ${string::replace(string::quote('{math::truncate(math::addition(a, b))}'), '{', '${')} + "${math::truncate(math::addition(a, b))}" + 1 + + + ${operating-system::get-platform('Microsoft Windows NT 5.0.0.0')} + Win32 + 1 + + + ${operating-system::get-version('Linux 4')} + 4.0.0.0 + 1 + + + ${operating-system::to-string('OpenBSD 6.5')} + OpenBSD 6.5 + 1 + + + ${operating-system::is-windows-server('')} + False + 1 + + + string::empty(platform::get-name()) => ${string::empty(platform::get-name())} + string::empty(platform::get-name()) => False + 1 + + + string::empty(platform::is-unix()) => ${string::empty(platform::is-unix())} + string::empty(platform::is-unix()) => False + 1 + + + string::empty(platform::is-windows()) => ${string::empty(platform::is-windows())} + string::empty(platform::is-windows()) => False + 1 + + + string::empty(platform::is-windows-server()) => ${string::empty(platform::is-windows-server())} + string::empty(platform::is-windows-server()) => False + 1 + + + ${path::glob('1.txt', '*.txt')} + True + 1 + + + ${path::glob('1.txt', '*.bat')} + False + 1 + + + ]]> + 1 + + + ]]> + 1 + + + +Hello! Do you know that last-index-of('ABAB', 'B') is ${string::last-index-of('ABAB', 'B')}? + />]]> + 1 + + + ]]> + 1 + + + ]]> + 1 + + + + + + + + + + + + + + + + + + ant4c.dns.dll + 1 + + + ant4c.regex.dll + 1 + + + + + + -1.5 + 1.5 + + + -1 + 1 + + + -0.5 + 0.5 + + + 0 + 0 + + + 0.5 + 0.5 + + + 1 + 1 + + + 1.5 + 1.5 + + + -1.75 + -1 + + + -1.5 + -1 + + + -1.25 + -1 + + + -1 + -1 + + + -0.75 + 0 + + + -0.5 + 0 + + + -0.25 + 0 + + + 0 + 0 + + + 0.25 + 1 + + + 0.5 + 1 + + + 0.75 + 1 + + + 1 + 1 + + + 1.25 + 2 + + + 1.5 + 2 + + + 1.75 + 2 + + + -1.75 + -2 + + + -1.5 + -2 + + + -1.25 + -2 + + + -1 + -1 + + + -0.75 + -1 + + + -0.5 + -1 + + + -0.25 + -1 + + + 0 + 0 + + + 0.25 + 0 + + + 0.5 + 0 + + + 0.75 + 0 + + + 1 + 1 + + + 1.25 + 1 + + + 1.5 + 1 + + + 1.75 + 1 + + + -1.75 + -2 + + + -1.5 + -2 + + + -1.25 + -1 + + + -1 + -1 + + + -0.75 + -1 + + + -0.5 + 0 + + + -0.25 + 0 + + + 0 + 0 + + + 0.25 + 0 + + + 0.5 + 0 + + + 0.75 + 1 + + + 1 + 1 + + + 1.25 + 1 + + + 1.5 + 2 + + + 1.75 + 2 + + + + + + + + + + + C:\1.txt + .txt + C:\1.txt + 1 + + + C:\1.txt + .exe + C:\1.exe + 1 + + + + + + 1 + + + C:\ + \Windows + C:\Windows + 1 + + + + \Windows + \Windows + 1 + + + C:\ + + C:\ + 1 + + + C:/ + /Windows + C:\Windows + 1 + + + + /Windows + \Windows + 1 + + + C:/ + + C:\ + 1 + + + C:/ + \Windows + C:\Windows + 1 + + + C:\ + /Windows + C:\Windows + 1 + + + /tmp/ + /file + /tmp/file + 1 + + + + /file + /file + 1 + + + /tmp/ + + /tmp/ + 1 + + + /tmp/ + \file + /tmp/file + 1 + + + + \file + /file + 1 + + + \tmp/ + + /tmp/ + 1 + + + \tmp\ + /file + /tmp/file + 1 + + + + + + + + C:\Windows\System32\cmd.exe + C:\Windows\System32 + 1 + + + /tmp/file + /tmp + 1 + + + C:\Temp + C: + 1 + + + C:\Temp\ + C:\Temp + 1 + + + /tmp + / + 1 + + + /tmp/ + /tmp + 1 + + + + + + + + 1.txt + .txt + 1 + + + 1. + + + + + + + + + + C:\Windows\System32\cmd.exe + cmd.exe + 1 + + + /tmp/file + file + 1 + + + + + + + + 1.txt + 1 + 1 + + + abc.txt + abc + 1 + + + + + + + + + C:\ + C:\Windows\System32 + C:\Windows\System32 + 1 + + + C:\Windows\System32 + ..\..\ + C:\ + 1 + + + C:\ + ..\..\ + + 0 + + + /tmp + ../ + / + 1 + + + /tmp + 4 + /.. + 3 + / + 1 + + + C:\ + 3 + sample.build + 12 + C:\sample.build + 1 + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + 1 + + + + This is a sample project for a test case. + + + + + ]]> + 1 + Example project. + Say hello. + Say hello. + + + + + + + ]]> + 1 + property_test + + + + Calculate 'real' solution(s) of quadratic polynomial. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${line} + + + ]]> + 1 + discriminant + Calculate 'real' solution(s) of quadratic polynomial. + + + + + + + ]]> + 1 + tasks_to_skip + + + + + + + + + + + + + + ]]> + 1 + discriminant + + + + + + + + ]]> + 1 + project-properties + some_target + + + + + + + + + + ]]> + 1 + loadfile sample + + + + + + + + + + + + ]]> + 1 + touch sample + + + + + + ]]> + 0 + 1 + fail sample 1 + + + + ${project::get-name()} - failed to continue interpreting script. + + ]]> + 0 + 1 + fail sample 2 + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + sleep sample + + + + + Attribute task will be ignored on non Windows platforms. + + + + + + + + + 1 + attrib sample + + + + + + + ]]> + 1 + property sample + + + + + The Hello World sample of project and target descriptions. + + + + + + + + + Publish the output of project + + + + + + ]]> + 1 + 1 + Hello descriptions! + foo + foo + clean + build + publish + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + File functions + + + + + + + + + + + + + + + + + ]]> + 1 + If task sample + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + Choose task sample + + + + + + + + ]]> + 1 + Property in the expression. + + + + + + + + ]]> + 0 + 1 + Target task sample 1 + A + + + + + + + + ]]> + 1 + Target task sample 2 + A + B + + + + + + + + + ]]> + 1 + Target task sample 3 + A + B + C + D + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + Target task sample 4 + D + A + B + C + D + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + Target task sample 5 + D + A + B + C + D + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + Target task sample 6 + D + A + B + C + D + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + Target task sample 7 + D + A + B + C + D + + + + + + + + ]]> + 1 + 0 + Target task sample 8 + A + A + B + + + + + + + + + + + + + + + ]]> + 1 + Call task sample + B + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + Call example + Run + A + B + C + Run + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + For each sample 1. + + + + + + A,a,1 + B,b,2 + C,c,3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + For each sample 2. + + + + + + + + + + ]]> + 1 + For each sample 3. + + + + + + + + + + ]]> + 1 + For each sample 4. + + + + + + + + + + + + + ]]> + 1 + For each sample 5. + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + For each sample 6. + + + + + + + + + + + ]]> + + 1 + For each sample 7. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + + + + + + ${file} + + + + + + ]]> + 1 + Program sample 1. + + + + + + ${file} + + + + + + + + + + + ]]> + 1 + Program sample 2. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + + + + + + + + + + + + + + + + + + + + ]]> + 1 + 'Try catch' sample 1. + + + + + + + + + + + + + + + + + + + + + + + ]]> + 'Try catch' sample 2. + 0 + 1 + + + + + + + + + + + + + + + + + ]]> + File replace sample. + 1 + + + + + + ]]> + 1 + Wild target sample 1. + in_the_middle_of_nowhere + + + + + + ]]> + 1 + Wild target sample 2. + in_the_middle_of_nowhere + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + Copy/move file sample 1. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + Copy/move file sample 2. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + Copy/move file sample 3. + ${path::get-temp-path()} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + Copy/move file sample 4. + + + + + + + + + + + + + + + + ]]> + 1 + Copy/move file sample 5. + ${path::get-temp-path()} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + Copy/move file sample 6. + ${path::get-temp-path()} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + Copy/move folder sample 1. + ${path::get-temp-path()} + + + + + + + + + + ]]> + 1 + Copy/move folder sample 2. + ${path::get-temp-path()} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + Copy/move folder sample 3. + ${path::get-temp-path()} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + Copy/move folder sample 4. + ${path::get-temp-path()} + + + + + + + + + + + + + + + ]]> + 1 + project-properties + some_target + some_target + + + + + + + + + + + + + + + + + + ]]> + 1 + target_with_call_sample + target_with_call_sample + target_that_was_called + + + + + + + + + + + + + + + + + + + + ]]> + 1 + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + load regex task + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + 1 + load dns function + + + + + 1 + + + + 1 + + + + 1 + 1 + + + + 1 + + + + 1 + 0 + + + + 1 + + + + 1 + + + + + 0 + + + + 1 + + + + + 1 + + + + + 1 + + + + 1 + + + + 1 + + + + + 1 + + + + + 1 + + + + + + ]]> + 1 + 0 + + + + ]]> + 1 + 0 + + + + ]]> + 1 + + + + 1 + 1 + + + + ]]> + 1 + + + + 1 + 1 + + + + ]]> + 1 + + + + 0 + 1 + + + + ]]> + ]]> + 0 + 1 + + + + ]]> + + ]]> + ]]> + ]]> + ]]> + ]]> + + ]]> + 1 + + + + 0 + 1 + + + + 0 + 1 + + + + 0 + 1 + + + + 0 + 1 + + + + 1 + 0 + ]]> + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + 1 + + + + + + + + + + + + + + 1 + + + + 2 + + + ~ + 1 + + + ¡ + 1 + + + ¡߿ + 2 + + + ¡ࢠ + 2 + + + ࢠ + 1 + + + ࢠ○ + 2 + + + العربية + 7 + + + 한국어 + 3 + + + ꆈꌠꁱꂷ (ꍏꉸꏓꂱꇭꉼꇩ) + 14 + + + + + 1 + -1 + + + "" + "" + 1 + 0 + + + 123 + 3 + 1 + 2 + + + + + -1 + -1 + + + "" + "" + -1 + 0 + + + 123 + 3 + -1 + 2 + + + 123 + 1 + -1 + 0 + + + ࢠ○ + + 1 + 1 + + + العربية + ب + 1 + 4 + + + 한국어 + + 1 + 1 + + + ꆈꌠꁱꂷ (ꍏꉸꏓꂱꇭꉼꇩ) + + 1 + 10 + + + العربية + ةيب + 4 + + + 한국어 + 어국 + 1 + + + ꆈꌠꁱꂷ (ꍏꉸꏓꂱꇭꉼꇩ) + )ꇭꇩ + 10 + + + العربية + ةيب + 6 + + + 한국어 + 어국 + 2 + + + ꆈꌠꁱꂷ (ꍏꉸꏓꂱꇭꉼꇩ) + ꇩꇭ) + 13 + + + + + 1 + 1 + + right + + + + + + + 0 + + + abc + b + ABC + aABCc + 1 + + + abc123 + bc1 + + a23 + 1 + + + abc123 + bc1 + b01 + ab0123 + 1 + + + abc123 + bc1 + 01 + a0123 + 1 + + + abc123 + 123 + + abc + 1 + + + abc123 + 123 + 4 + abc4 + 1 + + + abc123 + 123 + 456 + abc456 + 1 + + + abc123 + 123 + 123 + abc123 + 1 + + + abc123 + 123 + 123456 + abc123456 + 1 + + + abc123 + 3 + 1 + abc121 + 1 + + + abc123 + 3 + 3 + abc123 + 1 + + + abc + abc + 123 + 123 + 1 + + + abc + a + 1 + 1bc + 1 + + + abc + a + + bc + 1 + + + abc + a + ABCa + ABCabc + 1 + + + abc + a + a + abc + 1 + + + + + + [Info]: + + + 1 + + + + + + + + + + + + + + Abc + upper + ABC + 1 + + + ABC + upper + ABC + 1 + + + Abc + lower + abc + 1 + + + ABC + lower + abc + 1 + + + + + all + + 1 + + + + 1 + all + + 1 + + + abc + 5 + all + abc + 1 + + + abc + 4 + all + abc + 1 + + + abc + 4 + all + abc + 1 + + + abc + 3 + all + abc + 1 + + + .txt + 4 + end + .txt + 1 + + + abc + 5 + start + abc + 1 + + + abc + 4 + start + abc + 1 + + + abc + 4 + start + abc + 1 + + + abc + 3 + start + abc + 1 + + + + 1 + end + + 1 + + + .txt + 4 + end + .txt + 1 + + + abc + 5 + end + abc + 1 + + + abc + 4 + end + abc + 1 + + + abc + 4 + end + abc + 1 + + + abc + 3 + end + abc + 1 + + + abcd + 3 + end + abc + 1 + + + abc d + 4 + end + abc + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + "" + + + a b c + 1 + "a b c" + + + + 1 + + + + " + 1 + + + + "a b c" + 1 + a b c + + + ""a b c"" + 1 + a b c + + + '' + 1 + + + + "" + 1 + + + + + + 1 + + + a + b + 0 + + + c + c + 1 + + + + + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF + 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F + 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F + 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F + 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F + 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F + 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F + 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F + 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F + 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF + 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF + 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF + 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF + 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF + 0xF0 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF + 874 + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF + 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F + 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F + 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F + 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F + 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F + 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F + 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + + 0x20AC 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0x2026 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD + 0xFFFD 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD + + 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD + 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD + 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD + 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD + 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD + 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD + + + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF + 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F + 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F + 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F + 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F + 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F + 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F + 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F + 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F + 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF + 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF + 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF + 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF + 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF + 0xF0 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF + 1250 + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF + 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F + 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F + 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F + 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F + 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F + 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F + 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + + 0x20AC 0xFFFD 0x201A 0xFFFD 0x201E 0x2026 0x2020 0x2021 0xFFFD 0x2030 0x0160 0x2039 0x015A 0x0164 0x017D 0x0179 + 0xFFFD 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 0xFFFD 0x2122 0x0161 0x203A 0x015B 0x0165 0x017E 0x017A + 0x00A0 0x02C7 0x02D8 0x0141 0x00A4 0x0104 0x00A6 0x00A7 0x00A8 0x00A9 0x015E 0x00AB 0x00AC 0x00AD 0x00AE 0x017B + 0x00B0 0x00B1 0x02DB 0x0142 0x00B4 0x00B5 0x00B6 0x00B7 0x00B8 0x0105 0x015F 0x00BB 0x013D 0x02DD 0x013E 0x017C + 0x0154 0x00C1 0x00C2 0x0102 0x00C4 0x0139 0x0106 0x00C7 0x010C 0x00C9 0x0118 0x00CB 0x011A 0x00CD 0x00CE 0x010E + 0x0110 0x0143 0x0147 0x00D3 0x00D4 0x0150 0x00D6 0x00D7 0x0158 0x016E 0x00DA 0x0170 0x00DC 0x00DD 0x0162 0x00DF + 0x0155 0x00E1 0x00E2 0x0103 0x00E4 0x013A 0x0107 0x00E7 0x010D 0x00E9 0x0119 0x00EB 0x011B 0x00ED 0x00EE 0x010F + 0x0111 0x0144 0x0148 0x00F3 0x00F4 0x0151 0x00F6 0x00F7 0x0159 0x016F 0x00FA 0x0171 0x00FC 0x00FD 0x0163 0x02D9 + + + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF + 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F + 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F + 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F + 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F + 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F + 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F + 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F + 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F + 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF + 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF + 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF + 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF + 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF + 0xF0 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF + 1251 + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF + 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F + 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F + 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F + 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F + 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F + 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F + 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + + 0x0402 0x0403 0x201A 0x0453 0x201E 0x2026 0x2020 0x2021 0x20AC 0x2030 0x0409 0x2039 0x040A 0x040C 0x040B 0x040F + 0x0452 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 0xFFFD 0x2122 0x0459 0x203A 0x045A 0x045C 0x045B 0x045F + 0x00A0 0x040E 0x045E 0x0408 0x00A4 0x0490 0x00A6 0x00A7 0x0401 0x00A9 0x0404 0x00AB 0x00AC 0x00AD 0x00AE 0x0407 + 0x00B0 0x00B1 0x0406 0x0456 0x0491 0x00B5 0x00B6 0x00B7 0x0451 0x2116 0x0454 0x00BB 0x0458 0x0405 0x0455 0x0457 + 0x0410 0x0411 0x0412 0x0413 0x0414 0x0415 0x0416 0x0417 0x0418 0x0419 0x041A 0x041B 0x041C 0x041D 0x041E 0x041F + 0x0420 0x0421 0x0422 0x0423 0x0424 0x0425 0x0426 0x0427 0x0428 0x0429 0x042A 0x042B 0x042C 0x042D 0x042E 0x042F + 0x0430 0x0431 0x0432 0x0433 0x0434 0x0435 0x0436 0x0437 0x0438 0x0439 0x043A 0x043B 0x043C 0x043D 0x043E 0x043F + 0x0440 0x0441 0x0442 0x0443 0x0444 0x0445 0x0446 0x0447 0x0448 0x0449 0x044A 0x044B 0x044C 0x044D 0x044E 0x044F + + + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF + 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F + 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F + 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F + 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F + 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F + 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F + 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F + 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F + 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF + 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF + 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF + 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF + 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF + 0xF0 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF + 1252 + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF + 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F + 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F + 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F + 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F + 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F + 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F + 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + + 0x20AC 0xFFFD 0x201A 0x0192 0x201E 0x2026 0x2020 0x2021 0x02C6 0x2030 0x0160 0x2039 0x0152 0xFFFD 0x017D 0xFFFD + 0xFFFD 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 0x02DC 0x2122 0x0161 0x203A 0x0153 0xFFFD 0x017E 0x0178 + 0x00A0 0x00A1 0x00A2 0x00A3 0x00A4 0x00A5 0x00A6 0x00A7 0x00A8 0x00A9 0x00AA 0x00AB 0x00AC 0x00AD 0x00AE 0x00AF + 0x00B0 0x00B1 0x00B2 0x00B3 0x00B4 0x00B5 0x00B6 0x00B7 0x00B8 0x00B9 0x00BA 0x00BB 0x00BC 0x00BD 0x00BE 0x00BF + 0x00C0 0x00C1 0x00C2 0x00C3 0x00C4 0x00C5 0x00C6 0x00C7 0x00C8 0x00C9 0x00CA 0x00CB 0x00CC 0x00CD 0x00CE 0x00CF + 0x00D0 0x00D1 0x00D2 0x00D3 0x00D4 0x00D5 0x00D6 0x00D7 0x00D8 0x00D9 0x00DA 0x00DB 0x00DC 0x00DD 0x00DE 0x00DF + 0x00E0 0x00E1 0x00E2 0x00E3 0x00E4 0x00E5 0x00E6 0x00E7 0x00E8 0x00E9 0x00EA 0x00EB 0x00EC 0x00ED 0x00EE 0x00EF + 0x00F0 0x00F1 0x00F2 0x00F3 0x00F4 0x00F5 0x00F6 0x00F7 0x00F8 0x00F9 0x00FA 0x00FB 0x00FC 0x00FD 0x00FE 0x00FF + + + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF + 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F + 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F + 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F + 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F + 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F + 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F + 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F + 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F + 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF + 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF + 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF + 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF + 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF + 0xF0 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF + 1253 + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF + 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F + 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F + 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F + 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F + 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F + 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F + 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + + 0x20AC 0xFFFD 0x201A 0x0192 0x201E 0x2026 0x2020 0x2021 0xFFFD 0x2030 0xFFFD 0x2039 0xFFFD 0xFFFD 0xFFFD 0xFFFD + 0xFFFD 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 0xFFFD 0x2122 0xFFFD 0x203A 0xFFFD 0xFFFD 0xFFFD 0xFFFD + 0x00A0 0x0385 0x0386 0x00A3 0x00A4 0x00A5 0x00A6 0x00A7 0x00A8 0x00A9 0xFFFD 0x00AB 0x00AC 0x00AD 0x00AE 0x2015 + 0x00B0 0x00B1 0x00B2 0x00B3 0x0384 0x00B5 0x00B6 0x00B7 0x0388 0x0389 0x038A 0x00BB 0x038C 0x00BD 0x038E 0x038F + 0x0390 0x0391 0x0392 0x0393 0x0394 0x0395 0x0396 0x0397 0x0398 0x0399 0x039A 0x039B 0x039C 0x039D 0x039E 0x039F + 0x03A0 0x03A1 0xFFFD 0x03A3 0x03A4 0x03A5 0x03A6 0x03A7 0x03A8 0x03A9 0x03AA 0x03AB 0x03AC 0x03AD 0x03AE 0x03AF + 0x03B0 0x03B1 0x03B2 0x03B3 0x03B4 0x03B5 0x03B6 0x03B7 0x03B8 0x03B9 0x03BA 0x03BB 0x03BC 0x03BD 0x03BE 0x03BF + 0x03C0 0x03C1 0x03C2 0x03C3 0x03C4 0x03C5 0x03C6 0x03C7 0x03C8 0x03C9 0x03CA 0x03CB 0x03CC 0x03CD 0x03CE 0xFFFD + + + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF + 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F + 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F + 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F + 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F + 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F + 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F + 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F + 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F + 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF + 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF + 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF + 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF + 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF + 0xF0 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF + 1254 + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF + 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F + 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F + 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F + 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F + 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F + 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F + 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + + 0x20AC 0xFFFD 0x201A 0x0192 0x201E 0x2026 0x2020 0x2021 0x02C6 0x2030 0x0160 0x2039 0x0152 0xFFFD 0xFFFD 0xFFFD + 0xFFFD 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 0x02DC 0x2122 0x0161 0x203A 0x0153 0xFFFD 0xFFFD 0x0178 + 0x00A0 0x00A1 0x00A2 0x00A3 0x00A4 0x00A5 0x00A6 0x00A7 0x00A8 0x00A9 0x00AA 0x00AB 0x00AC 0x00AD 0x00AE 0x00AF + 0x00B0 0x00B1 0x00B2 0x00B3 0x00B4 0x00B5 0x00B6 0x00B7 0x00B8 0x00B9 0x00BA 0x00BB 0x00BC 0x00BD 0x00BE 0x00BF + 0x00C0 0x00C1 0x00C2 0x00C3 0x00C4 0x00C5 0x00C6 0x00C7 0x00C8 0x00C9 0x00CA 0x00CB 0x00CC 0x00CD 0x00CE 0x00CF + 0x011E 0x00D1 0x00D2 0x00D3 0x00D4 0x00D5 0x00D6 0x00D7 0x00D8 0x00D9 0x00DA 0x00DB 0x00DC 0x0130 0x015E 0x00DF + 0x00E0 0x00E1 0x00E2 0x00E3 0x00E4 0x00E5 0x00E6 0x00E7 0x00E8 0x00E9 0x00EA 0x00EB 0x00EC 0x00ED 0x00EE 0x00EF + 0x011F 0x00F1 0x00F2 0x00F3 0x00F4 0x00F5 0x00F6 0x00F7 0x00F8 0x00F9 0x00FA 0x00FB 0x00FC 0x0131 0x015F 0x00FF + + + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF + 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F + 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F + 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F + 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F + 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F + 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F + 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F + 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F + 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF + 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF + 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF + 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF + 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF + 0xF0 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF + 1255 + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF + 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F + 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F + 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F + 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F + 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F + 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F + 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + + 0x20AC 0xFFFD 0x201A 0x0192 0x201E 0x2026 0x2020 0x2021 0x02C6 0x2030 0xFFFD 0x2039 0xFFFD 0xFFFD 0xFFFD 0xFFFD + 0xFFFD 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 0x02DC 0x2122 0xFFFD 0x203A 0xFFFD 0xFFFD 0xFFFD 0xFFFD + 0x00A0 0x00A1 0x00A2 0x00A3 0x20AA 0x00A5 0x00A6 0x00A7 0x00A8 0x00A9 0x00D7 0x00AB 0x00AC 0x00AD 0x00AE 0x00AF + 0x00B0 0x00B1 0x00B2 0x00B3 0x00B4 0x00B5 0x00B6 0x00B7 0x00B8 0x00B9 0x00F7 0x00BB 0x00BC 0x00BD 0x00BE 0x00BF + 0x05B0 0x05B1 0x05B2 0x05B3 0x05B4 0x05B5 0x05B6 0x05B7 0x05B8 0x05B9 0xFFFD 0x05BB 0x05BC 0x05BD 0x05BE 0x05BF + 0x05C0 0x05C1 0x05C2 0x05C3 0x05F0 0x05F1 0x05F2 0x05F3 0x05F4 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD 0xFFFD + 0x05D0 0x05D1 0x05D2 0x05D3 0x05D4 0x05D5 0x05D6 0x05D7 0x05D8 0x05D9 0x05DA 0x05DB 0x05DC 0x05DD 0x05DE 0x05DF + 0x05E0 0x05E1 0x05E2 0x05E3 0x05E4 0x05E5 0x05E6 0x05E7 0x05E8 0x05E9 0x05EA 0xFFFD 0xFFFD 0x200E 0x200F 0xFFFD + + + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF + 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F + 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F + 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F + 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F + 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F + 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F + 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F + 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F + 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF + 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF + 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF + 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF + 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF + 0xF0 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF + 1256 + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF + 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F + 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F + 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F + 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F + 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F + 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F + 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + + 0x20AC 0x067E 0x201A 0x0192 0x201E 0x2026 0x2020 0x2021 0x02C6 0x2030 0x0679 0x2039 0x0152 0x0686 0x0698 0x0688 + 0x06AF 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 0x06A9 0x2122 0x0691 0x203A 0x0153 0x200C 0x200D 0x06BA + 0x00A0 0x060C 0x00A2 0x00A3 0x00A4 0x00A5 0x00A6 0x00A7 0x00A8 0x00A9 0x06BE 0x00AB 0x00AC 0x00AD 0x00AE 0x00AF + 0x00B0 0x00B1 0x00B2 0x00B3 0x00B4 0x00B5 0x00B6 0x00B7 0x00B8 0x00B9 0x061B 0x00BB 0x00BC 0x00BD 0x00BE 0x061F + 0x06C1 0x0621 0x0622 0x0623 0x0624 0x0625 0x0626 0x0627 0x0628 0x0629 0x062A 0x062B 0x062C 0x062D 0x062E 0x062F + 0x0630 0x0631 0x0632 0x0633 0x0634 0x0635 0x0636 0x00D7 0x0637 0x0638 0x0639 0x063A 0x0640 0x0641 0x0642 0x0643 + 0x00E0 0x0644 0x00E2 0x0645 0x0646 0x0647 0x0648 0x00E7 0x00E8 0x00E9 0x00EA 0x00EB 0x0649 0x064A 0x00EE 0x00EF + 0x064B 0x064C 0x064D 0x064E 0x00F4 0x064F 0x0650 0x00F7 0x0651 0x00F9 0x0652 0x00FB 0x00FC 0x200E 0x200F 0x06D2 + + + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF + 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F + 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F + 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F + 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F + 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F + 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F + 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F + 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F + 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF + 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF + 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF + 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF + 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF + 0xF0 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF + 1257 + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF + 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F + 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F + 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F + 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F + 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F + 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F + 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + + 0x20AC 0xFFFD 0x201A 0xFFFD 0x201E 0x2026 0x2020 0x2021 0xFFFD 0x2030 0xFFFD 0x2039 0xFFFD 0x00A8 0x02C7 0x00B8 + 0xFFFD 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 0xFFFD 0x2122 0xFFFD 0x203A 0xFFFD 0x00AF 0x02DB 0xFFFD + 0x00A0 0xFFFD 0x00A2 0x00A3 0x00A4 0xFFFD 0x00A6 0x00A7 0x00D8 0x00A9 0x0156 0x00AB 0x00AC 0x00AD 0x00AE 0x00C6 + 0x00B0 0x00B1 0x00B2 0x00B3 0x00B4 0x00B5 0x00B6 0x00B7 0x00F8 0x00B9 0x0157 0x00BB 0x00BC 0x00BD 0x00BE 0x00E6 + 0x0104 0x012E 0x0100 0x0106 0x00C4 0x00C5 0x0118 0x0112 0x010C 0x00C9 0x0179 0x0116 0x0122 0x0136 0x012A 0x013B + 0x0160 0x0143 0x0145 0x00D3 0x014C 0x00D5 0x00D6 0x00D7 0x0172 0x0141 0x015A 0x016A 0x00DC 0x017B 0x017D 0x00DF + 0x0105 0x012F 0x0101 0x0107 0x00E4 0x00E5 0x0119 0x0113 0x010D 0x00E9 0x017A 0x0117 0x0123 0x0137 0x012B 0x013C + 0x0161 0x0144 0x0146 0x00F3 0x014D 0x00F5 0x00F6 0x00F7 0x0173 0x0142 0x015B 0x016B 0x00FC 0x017C 0x017E 0x02D9 + + + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF + 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F + 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F + 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F + 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F + 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F + 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F + 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F + 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F + 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF + 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF + 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF + 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF + 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF + 0xF0 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF + 1258 + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF + 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F + 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F + 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F + 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F + 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F + 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F + 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + + 0x20AC 0xFFFD 0x201A 0x0192 0x201E 0x2026 0x2020 0x2021 0x02C6 0x2030 0xFFFD 0x2039 0x0152 0xFFFD 0xFFFD 0xFFFD + 0xFFFD 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 0x02DC 0x2122 0xFFFD 0x203A 0x0153 0xFFFD 0xFFFD 0x0178 + 0x00A0 0x00A1 0x00A2 0x00A3 0x00A4 0x00A5 0x00A6 0x00A7 0x00A8 0x00A9 0x00AA 0x00AB 0x00AC 0x00AD 0x00AE 0x00AF + 0x00B0 0x00B1 0x00B2 0x00B3 0x00B4 0x00B5 0x00B6 0x00B7 0x00B8 0x00B9 0x00BA 0x00BB 0x00BC 0x00BD 0x00BE 0x00BF + 0x00C0 0x00C1 0x00C2 0x0102 0x00C4 0x00C5 0x00C6 0x00C7 0x00C8 0x00C9 0x00CA 0x00CB 0x0300 0x00CD 0x00CE 0x00CF + 0x0110 0x00D1 0x0309 0x00D3 0x00D4 0x01A0 0x00D6 0x00D7 0x00D8 0x00D9 0x00DA 0x00DB 0x00DC 0x01AF 0x0303 0x00DF + 0x00E0 0x00E1 0x00E2 0x0103 0x00E4 0x00E5 0x00E6 0x00E7 0x00E8 0x00E9 0x00EA 0x00EB 0x0301 0x00ED 0x00EE 0x00EF + 0x0111 0x00F1 0x0323 0x00F3 0x00F4 0x01A1 0x00F6 0x00F7 0x00F8 0x00F9 0x00FA 0x00FB 0x00FC 0x01B0 0x20AB 0x00FF + + + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x10 + 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E + 0x1F 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C + 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A + 0x3B 0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 + 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53 0x54 0x55 0x56 + 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63 0x64 + 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 + 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + 0x20AC 0xFFFD 0x2026 0x2018 0x2019 0x201C 0x201D 0x2022 0x2013 0x2014 + 0x201A 0x201E 0x2020 0x2021 0x2030 0x0160 0x2039 0x015A 0x0164 0x017D + 0x0179 0x2122 0x0161 0x203A 0x015B 0x0165 0x017E 0x017A 0x00A0 0x02C7 + 0x02D8 0x0141 0x00A4 0x0104 0x00A6 0x00A7 0x00A8 0x00A9 0x015E 0x00AB + 0x00AC 0x00AD 0x00AE 0x017B 0x00B0 0x00B1 0x02DB 0x0142 0x00B4 0x00B5 + 0x00B6 0x00B7 0x00B8 0x0105 0x015F 0x00BB 0x013D 0x02DD 0x013E 0x017C + 0x0154 0x00C1 0x00C2 0x0102 0x00C4 0x0139 0x0106 0x00C7 0x010C 0x00C9 + 0x0118 0x00CB 0x011A 0x00CD 0x00CE 0x010E 0x0110 0x0143 0x0147 0x00D3 + 0x00D4 0x0150 0x00D6 0x00D7 0x0158 0x016E 0x00DA 0x0170 0x00DC 0x00DD + 0x0162 0x00DF 0x0155 0x00E1 0x00E2 0x0103 0x00E4 0x013A 0x0107 0x00E7 + 0x010D 0x00E9 0x0119 0x00EB 0x011B 0x00ED 0x00EE 0x010F 0x0111 0x0144 + 0x0148 0x00F3 0x00F4 0x0151 0x00F6 0x00F7 0x0159 0x016F 0x00FA 0x0171 + 0x00FC 0x00FD 0x0163 0x02D9 0x0402 0x0403 0x0453 0x0409 0x040A 0x040C + 0x040B 0x040F 0x0452 0x0459 0x045A 0x045C 0x045B 0x045F 0x040E 0x045E + 0x0408 0x0490 0x0401 0x0404 0x0407 0x0406 0x0456 0x0491 0x0451 0x2116 + 0x0454 0x0458 0x0405 0x0455 0x0457 0x0410 0x0411 0x0412 0x0413 0x0414 + 0x0415 0x0416 0x0417 0x0418 0x0419 0x041A 0x041B 0x041C 0x041D 0x041E + 0x041F 0x0420 0x0421 0x0422 0x0423 0x0424 0x0425 0x0426 0x0427 0x0428 + 0x0429 0x042A 0x042B 0x042C 0x042D 0x042E 0x042F 0x0430 0x0431 0x0432 + 0x0433 0x0434 0x0435 0x0436 0x0437 0x0438 0x0439 0x043A 0x043B 0x043C + 0x043D 0x043E 0x043F 0x0440 0x0441 0x0442 0x0443 0x0444 0x0445 0x0446 + 0x0447 0x0448 0x0449 0x044A 0x044B 0x044C 0x044D 0x044E 0x044F 0x0192 + 0x02C6 0x0152 0x02DC 0x0153 0x0178 0x00A1 0x00A2 0x00A3 0x00A5 0x00AA + 0x00AF 0x00B2 0x00B3 0x00B9 0x00BA 0x00BC 0x00BD 0x00BE 0x00BF 0x00C0 + 0x00C3 0x00C5 0x00C6 0x00C8 0x00CA 0x00CC 0x00CF 0x00D0 0x00D1 0x00D2 + 0x00D5 0x00D8 0x00D9 0x00DB 0x00DE 0x00E0 0x00E3 0x00E5 0x00E6 0x00E8 + 0x00EA 0x00EC 0x00EF 0x00F0 0x00F1 0x00F2 0x00F5 0x00F8 0x00F9 0x00FB + 0x00FE 0x00FF 0x0385 0x0386 0x2015 0x0384 0x0388 0x0389 0x038A 0x038C + 0x038E 0x038F 0x0390 0x0391 0x0392 0x0393 0x0394 0x0395 0x0396 0x0397 + 0x0398 0x0399 0x039A 0x039B 0x039C 0x039D 0x039E 0x039F 0x03A0 0x03A1 + 0x03A3 0x03A4 0x03A5 0x03A6 0x03A7 0x03A8 0x03A9 0x03AA 0x03AB 0x03AC + 0x03AD 0x03AE 0x03AF 0x03B0 0x03B1 0x03B2 0x03B3 0x03B4 0x03B5 0x03B6 + 0x03B7 0x03B8 0x03B9 0x03BA 0x03BB 0x03BC 0x03BD 0x03BE 0x03BF 0x03C0 + 0x03C1 0x03C2 0x03C3 0x03C4 0x03C5 0x03C6 0x03C7 0x03C8 0x03C9 0x03CA + 0x03CB 0x03CC 0x03CD 0x03CE 0x011E 0x0130 0x011F 0x0131 0x20AA 0x05B0 + 0x05B1 0x05B2 0x05B3 0x05B4 0x05B5 0x05B6 0x05B7 0x05B8 0x05B9 0x05BB + 0x05BC 0x05BD 0x05BE 0x05BF 0x05C0 0x05C1 0x05C2 0x05C3 0x05F0 0x05F1 + 0x05F2 0x05F3 0x05F4 0x05D0 0x05D1 0x05D2 0x05D3 0x05D4 0x05D5 0x05D6 + 0x05D7 0x05D8 0x05D9 0x05DA 0x05DB 0x05DC 0x05DD 0x05DE 0x05DF 0x05E0 + 0x05E1 0x05E2 0x05E3 0x05E4 0x05E5 0x05E6 0x05E7 0x05E8 0x05E9 0x05EA + 0x200E 0x200F 0x067E 0x0679 0x0686 0x0698 0x0688 0x06AF 0x06A9 0x0691 + 0x200C 0x200D 0x06BA 0x060C 0x06BE 0x061B 0x061F 0x06C1 0x0621 0x0622 + 0x0623 0x0624 0x0625 0x0626 0x0627 0x0628 0x0629 0x062A 0x062B 0x062C + 0x062D 0x062E 0x062F 0x0630 0x0631 0x0632 0x0633 0x0634 0x0635 0x0636 + 0x0637 0x0638 0x0639 0x063A 0x0640 0x0641 0x0642 0x0643 0x0644 0x0645 + 0x0646 0x0647 0x0648 0x0649 0x064A 0x064B 0x064C 0x064D 0x064E 0x064F + 0x0650 0x0651 0x0652 0x06D2 0x0156 0x0157 0x012E 0x0100 0x0112 0x0116 + 0x0122 0x0136 0x012A 0x013B 0x0145 0x014C 0x0172 0x016A 0x012F 0x0101 + 0x0113 0x0117 0x0123 0x0137 0x012B 0x013C 0x0146 0x014D 0x0173 0x016B + 0x0300 0x0309 0x01A0 0x01AF 0x0303 0x0301 0x0323 0x01A1 0x01B0 0x20AB + + + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x10 + 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E + 0x1F 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C + 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A + 0x3B 0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 + 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53 0x54 0x55 0x56 + 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63 0x64 + 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 + 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + + 0x80 0x3F 0x85 0x91 0x92 0x93 0x94 0x95 0x96 0x97 + + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + + + + + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x10 + 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E + 0x1F 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C + 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A + 0x3B 0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 + 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53 0x54 0x55 0x56 + 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63 0x64 + 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 + 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F 0x80 + 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E + 0x8F 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C + 0x9D 0x9E 0x9F 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA + 0xAB 0xAC 0xAD 0xAE 0xAF 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 + 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF 0xC0 0xC1 0xC2 0xC3 0xC4 0xC5 0xC6 + 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF 0xD0 0xD1 0xD2 0xD3 0xD4 + 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF 0xE0 0xE1 0xE2 + 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF 0xF0 + 0xF1 0xF2 0xF3 0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB 0xFC 0xFD 0xFE + 0xFF + + + 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF 0x10 + 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E + 0x1F 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C + 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A + 0x3B 0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 + 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53 0x54 0x55 0x56 + 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63 0x64 + 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 + 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F + + 0xE2 0x82 0xAC 0x3F 0x3F 0x3F 0x3F 0xE2 0x80 0xA6 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0xE2 0x80 0x98 0xE2 0x80 0x99 0xE2 + 0x80 0x9C 0xE2 0x80 0x9D 0xE2 0x80 0xA2 0xE2 0x80 0x93 0xE2 0x80 0x94 + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + 0x3F 0x3F 0x3F 0x3F 0x3F 0x3F + + + + + + + + + + + ]]> + ]]> + + + ]]> + ]]> + + + ]]> + ]]> + + + + + + + ]]> + 1 + + + + ]]> + 1 + + + + ]]> + 1 + + + + 123]]> + description + property + target + 4 + 123 + + + + + + ]]> + 1 + + + + + + + + + ]]> + tag + 1 + + + + + + + + + ]]> + name + + 1 + + + ]]> + name + ~¡߿ + 1 + + + ]]> + name + ~ ¡ ߿ + 1 + + + ]]> + name + <>&'" + 1 + + + ]]> + name + example + 1 + + + ]]> + name + example + 1 + + + ]]> + value + 0 + + + + + + + + ]]> + + 1 + + + ]]> + + 1 + + + 123]]> + + 1 + + + 123]]> + 123 + 1 + + + ~¡߿]]> + ~¡߿ + 1 + + + ~ ¡ ߿]]> + ~ ¡ ߿ + 1 + + + diff --git a/tests_environment.cpp b/tests_environment.cpp index 414281f..e33a4ce 100644 --- a/tests_environment.cpp +++ b/tests_environment.cpp @@ -1,7 +1,7 @@ /* * The MIT License (MIT) * - * Copyright (c) 2019 - 2020 https://github.com/TheVice/ + * Copyright (c) 2019 - 2021 https://github.com/TheVice/ * */ @@ -16,6 +16,7 @@ extern "C" { #include "operating_system.h" #include "range.h" #include "string_unit.h" +#include "version.h" }; #include @@ -23,6 +24,11 @@ extern "C" { #include #include +#if !defined(_WIN32) +#define _POSIXSOURCE 1 +#include +#endif + class TestEnvironment : public TestsBaseXml { }; @@ -186,14 +192,14 @@ TEST(TestEnvironment_, environment_get_machine_name) TEST(TestEnvironment_, environment_get_operating_system) { - const OperatingSystem* os = environment_get_operating_system(); + const void* os = environment_get_operating_system(); ASSERT_NE(nullptr, os); #if defined(_WIN32) - ASSERT_EQ(Win32, os->Platform); + ASSERT_EQ(Win32, operating_system_get_platform(os)); #else - ASSERT_EQ(Unix, os->Platform); + ASSERT_EQ(Unix, operating_system_get_platform(os)); #endif - ASSERT_LT(0, common_count_bytes_until(os->VersionString, 0)); + ASSERT_LT(0, common_count_bytes_until(operating_system_to_string(os), 0)); } TEST(TestEnvironment_, environment_get_user_name) @@ -297,19 +303,24 @@ TEST(TestOperatingSystem, operating_system_at_all) { ASSERT_LT(i, COUNT_OF(expected_platforms)) << buffer_free(&input); ASSERT_LT(i, COUNT_OF(expected_versions)) << buffer_free(&input); +#if defined(_WIN32) +#define OS_SIZE UINT8_MAX +#else +#define OS_SIZE sizeof(struct utsname) + INT8_MAX +#endif + uint8_t os[OS_SIZE]; + ASSERT_TRUE(operating_system_parse(input_in_range.start, pos, OS_SIZE, os)) << buffer_free(&input); + ASSERT_EQ(expected_platforms[i], operating_system_get_platform(os)) << buffer_free(&input); // - OperatingSystem os; - ASSERT_TRUE(operating_system_parse(input_in_range.start, pos, &os)) << buffer_free(&input); - ASSERT_EQ(expected_platforms[i], operating_system_get_platform(&os)) << buffer_free(&input); - // - const Version returned_version = operating_system_get_version(&os); - ASSERT_EQ(expected_versions[i].major, returned_version.major) << buffer_free(&input); - ASSERT_EQ(expected_versions[i].minor, returned_version.minor) << buffer_free(&input); - ASSERT_EQ(expected_versions[i].build, returned_version.build) << buffer_free(&input); - ASSERT_EQ(expected_versions[i].revision, returned_version.revision) << buffer_free(&input); + const Version* returned_version = operating_system_get_version(os); + ASSERT_NE(nullptr, returned_version) << buffer_free(&input); + ASSERT_EQ(expected_versions[i].major, returned_version->major) << buffer_free(&input); + ASSERT_EQ(expected_versions[i].minor, returned_version->minor) << buffer_free(&input); + ASSERT_EQ(expected_versions[i].build, returned_version->build) << buffer_free(&input); + ASSERT_EQ(expected_versions[i].revision, returned_version->revision) << buffer_free(&input); // ASSERT_STREQ((const char*)input_in_range.start, - (const char*)operating_system_to_string(&os)) << buffer_free(&input); + (const char*)operating_system_to_string(os)) << buffer_free(&input); // ++i; ++pos;