From 8e81ae82e0b0dfea0eecdc4f2a9718c466c8601f Mon Sep 17 00:00:00 2001 From: Allen Webster Date: Sun, 28 Aug 2016 00:31:06 -0400 Subject: [PATCH] C version of string library, C++ version preserved --- 4coder_API.html | 355 ++++++++------- 4coder_custom.dll | Bin 0 -> 211968 bytes 4coder_custom.pdb | Bin 0 -> 1683456 bytes 4coder_default_bindings.cpp | 8 +- 4coder_default_include.cpp | 101 ++--- 4coder_helper.h | 2 +- 4coder_jump_parsing.cpp | 68 +-- 4coder_string.h | 851 +++++++++++++++++++++++------------- 4coder_table.cpp | 4 +- 4cpp_lexer.h | 6 +- 4ed.cpp | 20 +- 4ed_api_implementation.cpp | 28 +- 4ed_file.cpp | 38 +- 4ed_file_view.cpp | 150 +++---- 4ed_font_set.cpp | 2 +- 4ed_metagen.cpp | 284 +++++++++--- 4ed_style.cpp | 4 +- build.bat | 19 +- build.c | 234 ++++++++++ build_all.bat | 2 +- internal_4coder_string.cpp | 340 ++++++++------ internal_4coder_tests.cpp | 6 +- system_shared.cpp | 2 +- test/4cpp_new_lexer.h | 6 +- win32_4ed.cpp | 31 +- win32_api_impl.cpp | 12 +- win32_ft_font.cpp | 2 +- 27 files changed, 1691 insertions(+), 884 deletions(-) create mode 100644 4coder_custom.dll create mode 100644 4coder_custom.pdb create mode 100644 build.c diff --git a/4coder_API.html b/4coder_API.html index 241285c6..db1d65bd 100644 --- a/4coder_API.html +++ b/4coder_API.html @@ -22,7 +22,7 @@ ul { list-style: none; padding: 0; margin: 0; }

§1 Introduction

-This is the documentation for alpha 4.0.10 super! The documentation is still under construction so some of the links are linking to sections that have not been written yet. What is here should be correct and I suspect useful even without some of the other sections.

+This is the documentation for alpha 4.0.10 The documentation is still under construction so some of the links are linking to sections that have not been written yet. What is here should be correct and I suspect useful even without some of the other sections.

If you have questions or discover errors please contact editor@4coder.net or to get help from community members you can post on the 4coder forums hosted on handmade.network at 4coder.handmade.network

@@ -550,7 +550,7 @@ the filename does not correspond to a file on disk the buffer is created empty.<
flags
The flags parameter specifies behaviors for the buffer kill.
-
Return
This call returns non-zero on success.
Description
Tries to kill the idenfied buffer. If the buffer is dirty and the "are you sure" +
Return
This call returns non-zero if the buffer is killed.
Description
Tries to kill the idenfied buffer. If the buffer is dirty and the "are you sure" dialogue needs to be displayed the provided view is used to show the dialogue. If the view is not open the kill fails.
See Also
Buffer_Kill_Flag
Buffer_Identifier

@@ -2285,35 +2285,70 @@ Coming Soon
  • char_is_hex
  • char_is_numeric
  • string_zero
  • +
  • make_string_cap
  • make_string
  • make_lit_string
  • make_fixed_width_string
  • expand_str
  • str_size
  • make_string_slowly
  • +
  • substr_tail
  • substr
  • skip_whitespace
  • chop_whitespace
  • skip_chop_whitespace
  • tailstr
  • -
  • match
  • -
  • match_part
  • -
  • match_insensitive
  • -
  • match_part_insensitive
  • -
  • compare
  • -
  • find
  • -
  • find_substr
  • -
  • rfind_substr
  • -
  • find_substr_insensitive
  • -
  • has_substr
  • -
  • has_substr_insensitive
  • -
  • copy_fast_unsafe
  • -
  • copy_checked
  • -
  • copy_partial
  • -
  • copy
  • -
  • append_checked
  • -
  • append_partial
  • -
  • append
  • +
  • match_cc
  • +
  • match_sc
  • +
  • match_cs
  • +
  • match_ss
  • +
  • match_part_ccl
  • +
  • match_part_scl
  • +
  • match_part_cc
  • +
  • match_part_sc
  • +
  • match_part_cs
  • +
  • match_part_ss
  • +
  • match_insensitive_cc
  • +
  • match_insensitive_sc
  • +
  • match_insensitive_cs
  • +
  • match_insensitive_ss
  • +
  • match_part_insensitive_ccl
  • +
  • match_part_insensitive_scl
  • +
  • match_part_insensitive_cc
  • +
  • match_part_insensitive_sc
  • +
  • match_part_insensitive_cs
  • +
  • match_part_insensitive_ss
  • +
  • compare_cc
  • +
  • compare_sc
  • +
  • compare_cs
  • +
  • compare_ss
  • +
  • find_c_char
  • +
  • find_s_char
  • +
  • find_c_chars
  • +
  • find_s_chars
  • +
  • find_substr_c
  • +
  • find_substr_s
  • +
  • rfind_substr_s
  • +
  • find_substr_insensitive_c
  • +
  • find_substr_insensitive_s
  • +
  • has_substr_c
  • +
  • has_substr_s
  • +
  • has_substr_insensitive_c
  • +
  • has_substr_insensitive_s
  • +
  • copy_fast_unsafe_cc
  • +
  • copy_fast_unsafe_cs
  • +
  • copy_checked_ss
  • +
  • copy_partial_sc
  • +
  • copy_partial_ss
  • +
  • copy_cc
  • +
  • copy_ss
  • +
  • copy_sc
  • +
  • append_checked_ss
  • +
  • append_partial_sc
  • +
  • append_partial_ss
  • +
  • append_s_char
  • +
  • append_ss
  • +
  • append_sc
  • terminate_with_null
  • append_padding
  • replace_char
  • @@ -2326,17 +2361,21 @@ Coming Soon
  • float_to_str_size
  • append_float_to_str
  • float_to_str
  • -
  • str_is_int
  • -
  • str_to_int
  • +
  • str_is_int_c
  • +
  • str_is_int_s
  • +
  • str_to_int_c
  • +
  • str_to_int_s
  • hexchar_to_int
  • int_to_hexchar
  • hexstr_to_int
  • color_to_hexstr
  • hexstr_to_color
  • +
  • reverse_seek_slash_pos
  • reverse_seek_slash
  • front_of_directory
  • path_of_directory
  • -
  • set_last_folder
  • +
  • set_last_folder_sc
  • +
  • set_last_folder_ss
  • file_extension
  • remove_last_folder
  • string_set_match
  • @@ -2406,12 +2445,12 @@ fstr_bool char_is_numeric(

    §4.3.11: string_zero

    String string_zero( -

    ) +
    void
    )
    Description
    This call returns a String struct of zeroed members.

    -

    §4.3.12: make_string

    +

    §4.3.12: make_string_cap

    -String make_string( +String make_string_cap(
    void *str,
    int32_t size,
    int32_t mem_size
    )
    Parameters
    @@ -2428,7 +2467,7 @@ If the memory does not already contain a useful string this should be zero.
    The mem_size parameter expresses the full size of the memory provided by str.
    Description
    This call returns the String created from the parameters.

    -

    §4.3.13: make_string

    +

    §4.3.13: make_string

    String make_string(
    void *str,
    int32_t size
    ) @@ -2473,15 +2512,15 @@ String make_string_slowly(
    Description
    This call makes a string by counting the number of bytes before a null terminator and treating that as the size and memory size of the string.

    -

    §4.3.19: substr

    +

    §4.3.19: substr_tail

    -String substr( +String substr_tail(
    String str,
    int32_t start
    )
    Description
    This call creates a substring of str that starts with an offset from str's base. The new string uses the same underlying memory so both strings will see changes. Usually strings created this way should only go through immutable calls.

    -

    §4.3.20: substr

    +

    §4.3.20: substr

    String substr(
    String str,
    int32_t start,
    int32_t size
    ) @@ -2518,33 +2557,33 @@ String tailstr(
    Description
    This call returns an empty String with underlying memory taken from the portion of str's memory that is not used.

    -

    §4.3.25: match

    +

    §4.3.25: match_cc

    -fstr_bool match( +fstr_bool match_cc(
    char *a,
    char *b
    )
    Description
    This call returns non-zero if a and b are equivalent.

    -

    §4.3.26: match

    +

    §4.3.26: match_sc

    -fstr_bool match( +fstr_bool match_sc(
    String a,
    char *b
    )
    Description
    This call returns non-zero if a and b are equivalent.

    -

    §4.3.27: match

    +

    §4.3.27: match_cs

    -fstr_bool match( +fstr_bool match_cs(
    char *a,
    String b
    )
    Description
    This call returns non-zero if a and b are equivalent.

    -

    §4.3.28: match

    +

    §4.3.28: match_ss

    -fstr_bool match( +fstr_bool match_ss(
    String a,
    String b
    )
    Description
    This call returns non-zero if a and b are equivalent.

    -

    §4.3.29: match_part

    +

    §4.3.29: match_part_ccl

    -fstr_bool match_part( +fstr_bool match_part_ccl(
    char *a,
    char *b,
    int32_t *len
    )
    Parameters
    @@ -2553,9 +2592,9 @@ fstr_bool match_part(
    Description
    This call is similar to a match call, except that it is permitted for a to be longer than b. In other words this call returns non-zero if b is a prefix of a.

    -

    §4.3.30: match_part

    +

    §4.3.30: match_part_scl

    -fstr_bool match_part( +fstr_bool match_part_scl(
    String a,
    char *b,
    int32_t *len
    )
    Parameters
    @@ -2564,9 +2603,9 @@ fstr_bool match_part(
    Description
    This call is similar to a match call, except that it is permitted for a to be longer than b. In other words this call returns non-zero if b is a prefix of a.

    -

    §4.3.31: match_part

    +

    §4.3.31: match_part_cc

    -fstr_bool match_part( +fstr_bool match_part_cc(
    char *a,
    char *b
    )
    Parameters
    @@ -2575,54 +2614,54 @@ fstr_bool match_part(
    Description
    This call is similar to a match call, except that it is permitted for a to be longer than b. In other words this call returns non-zero if b is a prefix of a.

    -

    §4.3.32: match_part

    +

    §4.3.32: match_part_sc

    -fstr_bool match_part( +fstr_bool match_part_sc(
    String a,
    char *b
    )
    Description
    This call is similar to a match call, except that it is permitted for a to be longer than b. In other words this call returns non-zero if b is a prefix of a.

    -

    §4.3.33: match_part

    +

    §4.3.33: match_part_cs

    -fstr_bool match_part( +fstr_bool match_part_cs(
    char *a,
    String b
    )
    Description
    This call is similar to a match call, except that it is permitted for a to be longer than b. In other words this call returns non-zero if b is a prefix of a.

    -

    §4.3.34: match_part

    +

    §4.3.34: match_part_ss

    -fstr_bool match_part( +fstr_bool match_part_ss(
    String a,
    String b
    )
    Description
    This call is similar to a match call, except that it is permitted for a to be longer than b. In other words this call returns non-zero if b is a prefix of a.

    -

    §4.3.35: match_insensitive

    +

    §4.3.35: match_insensitive_cc

    -fstr_bool match_insensitive( +fstr_bool match_insensitive_cc(
    char *a,
    char *b
    )
    Description
    This call returns non-zero if a and b are equivalent under case insensitive comparison.

    -

    §4.3.36: match_insensitive

    +

    §4.3.36: match_insensitive_sc

    -fstr_bool match_insensitive( +fstr_bool match_insensitive_sc(
    String a,
    char *b
    )
    Description
    This call returns non-zero if a and b are equivalent under case insensitive comparison.

    -

    §4.3.37: match_insensitive

    +

    §4.3.37: match_insensitive_cs

    -fstr_bool match_insensitive( +fstr_bool match_insensitive_cs(
    char *a,
    String b
    )
    Description
    This call returns non-zero if a and b are equivalent under case insensitive comparison.

    -

    §4.3.38: match_insensitive

    +

    §4.3.38: match_insensitive_ss

    -fstr_bool match_insensitive( +fstr_bool match_insensitive_ss(
    String a,
    String b
    )
    Description
    This call returns non-zero if a and b are equivalent under case insensitive comparison.

    -

    §4.3.39: match_part_insensitive

    +

    §4.3.39: match_part_insensitive_ccl

    -fstr_bool match_part_insensitive( +fstr_bool match_part_insensitive_ccl(
    char *a,
    char *b,
    int32_t *len
    )
    Parameters
    @@ -2630,9 +2669,9 @@ fstr_bool match_part_insensitive(
    If this call returns non-zero this parameter is used to output the length of b.
    Description
    This call performs the same partial matching rule as match_part under case insensitive comparison.
    See Also

    -

    §4.3.40: match_part_insensitive

    +

    §4.3.40: match_part_insensitive_scl

    -fstr_bool match_part_insensitive( +fstr_bool match_part_insensitive_scl(
    String a,
    char *b,
    int32_t *len
    )
    Parameters
    @@ -2640,65 +2679,65 @@ fstr_bool match_part_insensitive(
    If this call returns non-zero this parameter is used to output the length of b.
    Description
    This call performs the same partial matching rule as match_part under case insensitive comparison.
    See Also

    -

    §4.3.41: match_part_insensitive

    +

    §4.3.41: match_part_insensitive_cc

    -fstr_bool match_part_insensitive( +fstr_bool match_part_insensitive_cc(
    char *a,
    char *b
    )
    Description
    This call performs the same partial matching rule as match_part under case insensitive comparison.
    See Also

    -

    §4.3.42: match_part_insensitive

    +

    §4.3.42: match_part_insensitive_sc

    -fstr_bool match_part_insensitive( +fstr_bool match_part_insensitive_sc(
    String a,
    char *b
    )
    Description
    This call performs the same partial matching rule as match_part under case insensitive comparison.
    See Also

    -

    §4.3.43: match_part_insensitive

    +

    §4.3.43: match_part_insensitive_cs

    -fstr_bool match_part_insensitive( +fstr_bool match_part_insensitive_cs(
    char *a,
    String b
    )
    Description
    This call performs the same partial matching rule as match_part under case insensitive comparison.
    See Also

    -

    §4.3.44: match_part_insensitive

    +

    §4.3.44: match_part_insensitive_ss

    -fstr_bool match_part_insensitive( +fstr_bool match_part_insensitive_ss(
    String a,
    String b
    )
    Description
    This call performs the same partial matching rule as match_part under case insensitive comparison.
    See Also

    -

    §4.3.45: compare

    +

    §4.3.45: compare_cc

    -int32_t compare( +int32_t compare_cc(
    char *a,
    char *b
    )
    Description
    This call returns zero if a and b are equivalent, it returns negative if a sorts before b alphabetically, and positive if a sorts after b alphabetically.

    -

    §4.3.46: compare

    +

    §4.3.46: compare_sc

    -int32_t compare( +int32_t compare_sc(
    String a,
    char *b
    )
    Description
    This call returns zero if a and b are equivalent, it returns negative if a sorts before b alphabetically, and positive if a sorts after b alphabetically.

    -

    §4.3.47: compare

    +

    §4.3.47: compare_cs

    -int32_t compare( +int32_t compare_cs(
    char *a,
    String b
    )
    Description
    This call returns zero if a and b are equivalent, it returns negative if a sorts before b alphabetically, and positive if a sorts after b alphabetically.

    -

    §4.3.48: compare

    +

    §4.3.48: compare_ss

    -int32_t compare( +int32_t compare_ss(
    String a,
    String b
    )
    Description
    This call returns zero if a and b are equivalent, it returns negative if a sorts before b alphabetically, and positive if a sorts after b alphabetically.

    -

    §4.3.49: find

    +

    §4.3.49: find_c_char

    -int32_t find( +int32_t find_c_char(
    char *str,
    int32_t start,
    char character
    )
    Parameters
    @@ -2715,9 +2754,9 @@ int32_t find(
    Description
    This call returns the index of the first occurance of character, or the size of the string if the character is not found.

    -

    §4.3.50: find

    +

    §4.3.50: find_s_char

    -int32_t find( +int32_t find_s_char(
    String str,
    int32_t start,
    char character
    )
    Parameters
    @@ -2734,9 +2773,9 @@ int32_t find(
    Description
    This call returns the index of the first occurance of character, or the size of the string if the character is not found.

    -

    §4.3.51: find

    +

    §4.3.51: find_c_chars

    -int32_t find( +int32_t find_c_chars(
    char *str,
    int32_t start,
    char *characters
    )
    Parameters
    @@ -2753,9 +2792,9 @@ int32_t find(
    Description
    This call returns the index of the first occurance of a character in the characters array, or the size of the string if no such character is not found.

    -

    §4.3.52: find

    +

    §4.3.52: find_s_chars

    -int32_t find( +int32_t find_s_chars(
    String str,
    int32_t start,
    char *characters
    )
    Parameters
    @@ -2772,9 +2811,9 @@ int32_t find(
    Description
    This call returns the index of the first occurance of a character in the characters array, or the size of the string if no such character is not found.

    -

    §4.3.53: find_substr

    +

    §4.3.53: find_substr_c

    -int32_t find_substr( +int32_t find_substr_c(
    char *str,
    int32_t start,
    String seek
    )
    Parameters
    @@ -2791,9 +2830,9 @@ int32_t find_substr(
    Description
    This call returns the index of the first occurance of the seek substring in str or the size of str if no such substring in str is found.

    -

    §4.3.54: find_substr

    +

    §4.3.54: find_substr_s

    -int32_t find_substr( +int32_t find_substr_s(
    String str,
    int32_t start,
    String seek
    )
    Parameters
    @@ -2810,9 +2849,9 @@ int32_t find_substr(
    Description
    This call returns the index of the first occurance of the seek substring in str or the size of str if no such substring in str is found.

    -

    §4.3.55: rfind_substr

    +

    §4.3.55: rfind_substr_s

    -int32_t rfind_substr( +int32_t rfind_substr_s(
    String str,
    int32_t start,
    String seek
    )
    Parameters
    @@ -2829,9 +2868,9 @@ int32_t rfind_substr(
    Description
    This call returns the index of the last occurance of the seek substring in str or -1 if no such substring in str is found.

    -

    §4.3.56: find_substr_insensitive

    +

    §4.3.56: find_substr_insensitive_c

    -int32_t find_substr_insensitive( +int32_t find_substr_insensitive_c(
    char *str,
    int32_t start,
    String seek
    )
    Parameters
    @@ -2847,9 +2886,9 @@ int32_t find_substr_insensitive(
    The seek parameter provides a string to find in str.
    Description
    This call acts as find_substr under case insensitive comparison.
    See Also

    -

    §4.3.57: find_substr_insensitive

    +

    §4.3.57: find_substr_insensitive_s

    -int32_t find_substr_insensitive( +int32_t find_substr_insensitive_s(
    String str,
    int32_t start,
    String seek
    )
    Parameters
    @@ -2865,35 +2904,35 @@ int32_t find_substr_insensitive(
    The seek parameter provides a string to find in str.
    Description
    This call acts as find_substr under case insensitive comparison.
    See Also

    -

    §4.3.58: has_substr

    +

    §4.3.58: has_substr_c

    -fstr_bool has_substr( +fstr_bool has_substr_c(
    char *s,
    String seek
    )
    Description
    This call returns non-zero if the string s contains a substring equivalent to seek.

    -

    §4.3.59: has_substr

    +

    §4.3.59: has_substr_s

    -fstr_bool has_substr( +fstr_bool has_substr_s(
    String s,
    String seek
    )
    Description
    This call returns non-zero if the string s contains a substring equivalent to seek.

    -

    §4.3.60: has_substr_insensitive

    +

    §4.3.60: has_substr_insensitive_c

    -fstr_bool has_substr_insensitive( +fstr_bool has_substr_insensitive_c(
    char *s,
    String seek
    )
    Description
    This call returns non-zero if the string s contains a substring equivalent to seek under case insensitive comparison.

    -

    §4.3.61: has_substr_insensitive

    +

    §4.3.61: has_substr_insensitive_s

    -fstr_bool has_substr_insensitive( +fstr_bool has_substr_insensitive_s(
    String s,
    String seek
    )
    Description
    This call returns non-zero if the string s contains a substring equivalent to seek under case insensitive comparison.

    -

    §4.3.62: copy_fast_unsafe

    +

    §4.3.62: copy_fast_unsafe_cc

    -int32_t copy_fast_unsafe( +int32_t copy_fast_unsafe_cc(
    char *dest,
    char *src
    )
    Description
    This call performs a copy from the src buffer to the dest buffer. @@ -2901,9 +2940,9 @@ The copy does not stop until a null terminator is found in src. There is no safety against overrun so dest must be large enough to contain src. The null terminator is not written to dest. This call returns the number of bytes coppied to dest.

    -

    §4.3.63: copy_fast_unsafe

    +

    §4.3.63: copy_fast_unsafe_cs

    -int32_t copy_fast_unsafe( +int32_t copy_fast_unsafe_cs(
    char *dest,
    String src
    )
    Description
    This call performs a copy from the src string to the dest buffer. @@ -2911,87 +2950,87 @@ The copy does not stop until src.size characters are coppied. There is no safety against overrun so dest must be large enough to contain src. The null terminator is not written to dest. This call returns the number of bytes coppied to dest.

    -

    §4.3.64: copy_checked

    +

    §4.3.64: copy_checked_ss

    -fstr_bool copy_checked( +fstr_bool copy_checked_ss(
    String *dest,
    String src
    )
    Description
    This call performs a copy from the src string to the dest string. The memory_size of dest is checked before any coppying is done. This call returns non-zero on a successful copy.

    -

    §4.3.65: copy_partial

    +

    §4.3.65: copy_partial_sc

    -fstr_bool copy_partial( +fstr_bool copy_partial_sc(
    String *dest,
    char *src
    )
    Description
    This call performs a copy from the src buffer to the dest string. The memory_size of dest is checked if the entire copy cannot be performed, as many bytes as possible are coppied to dest. This call returns non-zero if the entire string is coppied to dest.

    -

    §4.3.66: copy_partial

    +

    §4.3.66: copy_partial_ss

    -fstr_bool copy_partial( +fstr_bool copy_partial_ss(
    String *dest,
    String src
    )
    Description
    This call performs a copy from the src string to the dest string. The memory_size of dest is checked if the entire copy cannot be performed, as many bytes as possible are coppied to dest. This call returns non-zero if the entire string is coppied to dest.

    -

    §4.3.67: copy

    +

    §4.3.67: copy_cc

    -int32_t copy( +int32_t copy_cc(
    char *dest,
    char *src
    )
    Description
    This call performs a copy from src to dest equivalent to copy_fast_unsafe.
    See Also

    -

    §4.3.68: copy

    +

    §4.3.68: copy_ss

    -void copy( +void copy_ss(
    String *dest,
    String src
    )
    Description
    This call performs a copy from src to dest equivalent to copy_checked.
    See Also

    -

    §4.3.69: copy

    +

    §4.3.69: copy_sc

    -void copy( +void copy_sc(
    String *dest,
    char *src
    )
    Description
    This call performs a copy from src to dest equivalent to copy_partial.
    See Also

    -

    §4.3.70: append_checked

    +

    §4.3.70: append_checked_ss

    -fstr_bool append_checked( +fstr_bool append_checked_ss(
    String *dest,
    String src
    )
    Description
    This call checks if there is enough space in dest's underlying memory to append src onto dest. If there is src is appended and the call returns non-zero.

    -

    §4.3.71: append_partial

    +

    §4.3.71: append_partial_sc

    -fstr_bool append_partial( +fstr_bool append_partial_sc(
    String *dest,
    char *src
    )
    Description
    This call attemps to append as much of src into the space in dest's underlying memory as possible. If the entire string is appended the call returns non-zero.

    -

    §4.3.72: append_partial

    +

    §4.3.72: append_partial_ss

    -fstr_bool append_partial( +fstr_bool append_partial_ss(
    String *dest,
    String src
    )
    Description
    This call attemps to append as much of src into the space in dest's underlying memory as possible. If the entire string is appended the call returns non-zero.

    -

    §4.3.73: append

    +

    §4.3.73: append_s_char

    -fstr_bool append( +fstr_bool append_s_char(
    String *dest,
    char c
    )
    Description
    This call attemps to append c onto dest. If there is space left in dest's underlying memory the character is appended and the call returns non-zero.

    -

    §4.3.74: append

    +

    §4.3.74: append_ss

    -fstr_bool append( +fstr_bool append_ss(
    String *dest,
    String src
    )
    Description
    This call is equivalent to append_partial.
    See Also

    -

    §4.3.75: append

    +

    §4.3.75: append_sc

    -fstr_bool append( +fstr_bool append_sc(
    String *dest,
    char *src
    )
    Description
    This call is equivalent to append_partial.
    See Also

    @@ -3090,89 +3129,95 @@ fstr_bool float_to_str(
    Description
    This call appends a string representation of x onto dest. If there is enough space in dest this call returns non-zero.

    -

    §4.3.88: str_is_int

    +

    §4.3.88: str_is_int_c

    -fstr_bool str_is_int( +int32_t str_is_int_c( +
    char *str
    ) +
    +
    Description
    If str is a valid string representation of an integer, this call returns non-zero

    +

    §4.3.89: str_is_int_s

    +
    +fstr_bool str_is_int_s(
    String str
    )
    Description
    If str is a valid string representation of an integer, this call returns non-zero.

    -

    §4.3.89: str_to_int

    +

    §4.3.90: str_to_int_c

    -int32_t str_to_int( +int32_t str_to_int_c(
    char *str
    )
    Description
    If str is a valid string representation of an integer, this call will return the integer represented by the string. Otherwise this call returns zero.

    -

    §4.3.90: str_to_int

    +

    §4.3.91: str_to_int_s

    -int32_t str_to_int( +int32_t str_to_int_s(
    String str
    )
    Description
    If str represents a valid string representation of an integer, this call will return the integer represented by the string. Otherwise this call returns zero.

    -

    §4.3.91: hexchar_to_int

    +

    §4.3.92: hexchar_to_int

    int32_t hexchar_to_int(
    char c
    )
    Description
    If c is a valid hexadecimal digit [0-9a-fA-F] this call returns the value of the integer value of the digit. Otherwise the return is some nonsense value.

    -

    §4.3.92: int_to_hexchar

    +

    §4.3.93: int_to_hexchar

    char int_to_hexchar(
    int32_t x
    )
    Description
    If x is in the range [0,15] this call returns the equivalent lowercase hexadecimal digit. Otherwise the return is some nonsense value.

    -

    §4.3.93: hexstr_to_int

    +

    §4.3.94: hexstr_to_int

    uint32_t hexstr_to_int(
    String str
    )
    Description
    This call interprets str has a hexadecimal representation of an integer and returns the represented integer value.

    -

    §4.3.94: color_to_hexstr

    +

    §4.3.95: color_to_hexstr

    fstr_bool color_to_hexstr(
    String *s,
    uint32_t color
    )
    Description
    This call fills s with the hexadecimal representation of the color. If there is enough memory in s to represent the color this call returns non-zero.

    -

    §4.3.95: hexstr_to_color

    +

    §4.3.96: hexstr_to_color

    fstr_bool hexstr_to_color(
    String s,
    uint32_t *out
    )
    Description
    This call interprets s as a color and writes the 32-bit integer representation into out.

    -

    §4.3.96: reverse_seek_slash

    +

    §4.3.97: reverse_seek_slash_pos

    -int32_t reverse_seek_slash( +int32_t reverse_seek_slash_pos(
    String str,
    int32_t pos
    )
    Description
    This call searches for a slash in str by starting pos bytes from the end and going backwards.

    -

    §4.3.97: reverse_seek_slash

    +

    §4.3.98: reverse_seek_slash

    int32_t reverse_seek_slash(
    String str
    )
    Description
    This call searches for a slash in str by starting at the end and going backwards.

    -

    §4.3.98: front_of_directory

    +

    §4.3.99: front_of_directory

    String front_of_directory(
    String dir
    )
    Description
    This call returns a substring of dir containing only the file name or folder name furthest to the right in the directory.
    See Also

    -

    §4.3.99: path_of_directory

    +

    §4.3.100: path_of_directory

    String path_of_directory(
    String dir
    )
    Description
    This call returns a substring of dir containing the whole path except for the final file or folder name.
    See Also

    -

    §4.3.100: set_last_folder

    +

    §4.3.101: set_last_folder_sc

    -fstr_bool set_last_folder( +fstr_bool set_last_folder_sc(
    String *dir,
    char *folder_name,
    char slash
    )
    Parameters
    @@ -3190,9 +3235,9 @@ at the end of the directory.
    Description
    This call deletes the last file name or folder name in the dir string and appends the new provided one. If there is enough memory in dir this call returns non-zero.

    -

    §4.3.101: set_last_folder

    +

    §4.3.102: set_last_folder_ss

    -fstr_bool set_last_folder( +fstr_bool set_last_folder_ss(
    String *dir,
    String folder_name,
    char slash
    )
    Parameters
    @@ -3209,20 +3254,20 @@ fstr_bool set_last_folder(
    Description
    This call deletes the last file name or folder name in the dir string and appends the new provided one. If there is enough memory in dir this call returns non-zero.

    -

    §4.3.102: file_extension

    +

    §4.3.103: file_extension

    String file_extension(
    String str
    )
    Description
    This call returns a substring containing only the file extension of the provided filename.
    See Also

    -

    §4.3.103: remove_last_folder

    +

    §4.3.104: remove_last_folder

    fstr_bool remove_last_folder(
    String *str
    )
    Description
    This call attemps to delete a folder or filename off the end of a path string. This call returns non-zero on success.

    -

    §4.3.104: string_set_match

    +

    §4.3.105: string_set_match

    fstr_bool string_set_match(
    String *str_set,
    int32_t count,
    String str,
    int32_t *match_index
    ) diff --git a/4coder_custom.dll b/4coder_custom.dll new file mode 100644 index 0000000000000000000000000000000000000000..763668bccaa88c04307dbaaaa743626b9d40a735 GIT binary patch literal 211968 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�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

    iq)}DJO4Q+Oz^Z#GIAEfC@{Wd~$uckd z-r()q)!1FGh|pf5wg^=^33(McNQO$YD-|IUB>3ifR6}%-Y?BTFF6ACvq zEq8|2{bG@Xsa83yDVquwz02_cB*#lj)Y+4Rtjg&EI+ z111bpabVG-u}U5G0WjFbIH-J9IRWN+7nj_Q9o#AJ&+WjI;sec{BW=;5yPK+Y7_ET8 z^_rd~Mv^$d3x6WOmt%884i#n|9pCI*_I$LqoTK>$Hv@)y+ReeDFE7Mz^3 z4W?$#g-P2;Q@eU?nh=%}pI-aoq>$U26q1IJP*@M%!U>4vLWUQXM39}P#S=1}uwx>A z;fc{wgwx#muRMhkI@F{W!Ii)6h_F&)oi0XQqthJhO0gIptgU(@C|XC6AkXnqMlm*8 z5pff<8S9Qaisi9-V5CM9s2zDTHa-lXpZ0Jo>(EH6qi;8W$c_;h!u6}w9g4+5@Htz! zDNIgUtMw0gqq9VVedoo=m6)&x&P}pCm^oe#9MCMm^+0;B#N&_Wkf-LpSJUm6c?#AUSG?sGL@KCAZ!3 zNa`YPFDdFy_2NexBybu>0#7ez^S(JB0E?Zfm#Rr~W%p1gRf*W{)Qi0UAR@vUu5;<$ zuXB~SmG8}YUi7?Fck^Z|%0!-O=&0U&s#H391D&e!G8XL1DOlEW^xOxPU`b_sOCH=E z-Rk!JF?W1Q33e-g$_Y`pXi!35halPY6Ah7%`nMj|QjZPS-+ZIC63E3YW5>GHWjNHc z@9MlTx_DFN*2f1GA{qxYXK_FVCOK)YFu4)0lu>A$N|LBk9^Cpu*M32v$suo2&mp(G z9OMp|a9yxzPK_9=^tDC-%yXlyaCh9e+%Y0$Z{D~#$UyX;3=q~OO=|i|{9G%!-g)hh{>>Ki=3&=UG4ruO zbkx*t5F_Cr@wzSW_^`Ig4{hk`)@@~@bcrQfzPv&yp5au)LV=z&miJN2F%W-pOqQ*M z-fOmUWe1$c4oC5EAohRuu=J5U5b2m)iBC9y&VAPHB<{{+MWH;d@8pS>R!`LTQmfj&jx>j6SqY0no`9XRlpN!9+{K14Tsj$GO>P10u-1JqINCFXUEOaptr6r*}Ic#H$0vL9WQnZwAcQStFV)m5=ACE`4_fsFI{b+f8#N#D?zN{Xa&sSHRxIfA6q$5JNZ6Um{cxND+4qxn+QeqGf5!}qm)ivE|%A^jhdGTwjs zd!qI?{p|K`fVBXZ|MMk=M|Ym4p_1wK7YJ48wqJdg$}I8DG;+2@O>^ zc;b^h$N9L;BszvfVTm}JXTt#Q#+A$W@x zF~w!hA$vKMhMupGU3C$y2x5ISFaK+&BAKatT^GP^vXwC;JD=oH2anO$%%B^Fq=98a zk~j$-tIt3Yh{&MyXDa{glB3j+tQC0U_hePl2&OM|9Wm80f}F3dhVEa|P1vvLzh*BL z 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 NZNhj*1^9pa_&-34@E-sG literal 0 HcmV?d00001 diff --git a/4coder_custom.pdb b/4coder_custom.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3017c10477b5a069499f391d04f7c55b28a690ec GIT binary patch literal 1683456 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�{Ycnb@n&YOjB zIu^!#SOU2gwMrq^pjH{|gyqm5%cI(T;oo%UM|^dM19)cx^V zuKYvzTfk0d{u#upos$vQlb}~0(&fj#*cS&N$*nKU`0HYmxsJ*2CMV z^8E-wNB(#FV)p+(NSBs0k5J`5#tQfZ=^GY(!`ugbhW%K6j@q8T@JEb9t*5BMQRjNp zPqiI!(TkwhE7HYB`j|Oizlo90_Z#`%yYl_x%J;#QFMzTFT>04NmVVJOwf_sw*CX*>N14mt%*tiEN|%c`UA zr|WprdcQ}lw;JZf>d1R@yfwyJEVsuxI0@O`<~VJD^lfvTMeV zuL)-1?@f_0${c@en>qf}ms%3fF>JnH)*aihJRaMk)-#Xbcig#MI_|X|cjBfJ^ztK} z`XP0;b7BY7IM)fap3ca&SY5Cy66`U^x=erXf!a?!F%)~_LF|L{S$(8q&LjQNjr9+} zq{vui>K8#8eGp5O)h3R!ei?axg`n3E{+tPiq9-!eoBlfzDbsxKY!r@Wc?R12w+5-B zdH$KUuwSw~0kg7_K-73K1)JcH*c)jN^EvA@)aNtP@eER?d44Jg|6zGH7NVZPSPFka zJwGrPt0L`fH^hb56gAFiKd>EErY!r7azA_2HcM7 z4?D03?nI6u^F1_`=SM-luJWd_ohncDSDWf}i1a#6!Y~&e!HRekHI5#~?syVuOI6ME zpL58%%(zQhGwwb_jkE9Y5^64f8FL{0#5`B?E7oNBH*AL2Z~*>}WAP?VL;9ro96bW( zvV0eHK6`*VA3sK2H$A~C_zd6R3yi~d{)KujCld8s4sBs)z*m?Z-=gO08qai{^%3>F z+$YrYa-Z=B{EB|a4zc|)K90tO$g|z%dt_?o_k>6qg(_H6h*vvj;XU;-FV2OgojJBm zJ2MwH?Mxe)c20*JYgT$xKgxh=Z_fSp3e1e^PaGTOdD3jCd9){XKrifsc~Q@06u`Y$ z5YJ&D%t*cX%)~rDSOkl)TpUYa39Nu6QSDF$bsbX{b$sv{gWVaKGuyhi$uktTjU1z< z-}+KFeIbWcS;Gk0{)AYSpciuvGd|QnPnPKe<~ZV}>-Elki!kx%iWUl-AqWWKdyoLi%^;UaCaxf6}pY1W6bQ&*5pxR?3>bM+* zy>K+DJ#18aj6szfL4g66oaHu%=WGv+|Ehyt<4LFEc>?M@wdwJB+hg)_4_+9HZv@WgK(Xe3m&z%=gH0v+h+a2jFVd_1k7Vgj?_! z(st&4;SSXCxeJrvZq$7b`l@-(>Hzj*ISkdm$ZMa$lXw+RVFaGW$9NV$A${CV8JF=0 zz3>7S#&9f$7qJ;$#ui9>*&XpJ+Q`1M$KrLIf;Vst-a?)YHQyuS8Bg;)vOUOtuz5z( ze4mVGAFcZ=>%RB{)cw7u7>R%4TYQc@V`#n?mXQ4x$#OD$g*ovJR>QYw_A}cQ&R|K? zS=Ey{uj5+sp6B+>>lD{%MR<1($KZLSyIB|TFAT>ocnKLRtjowTYh6W-1?yLwhSzW< zUdMy@JJP1sE!6q*HfmhBgCQ7!+8=k3XY#Fkn3?T*fLZY&>b~w1AnWYk4aR-oR`~+gJ`{+bmBk zotW!utd6-b0CVGR%!`LGA6~_R_z(+YVaCoPI2HNrHhUfx!*y63cVY=VfhF-0mcrY} zI_)G$IWJ&(EQj7$5q+={R>jI#3#;Hb{2s4kRg6PFrp|Ujtbyw1MG21k&VHVc_x|)f zx{c*U(5n{dsJ>Mj6;~%lK3`Y9g2czpSI?ENKIY-?4PxXA`bNHnu6&JL`5MQ_7ygZW zOo75GxgN9O1}upiu^w(hjq{t4?>JanknbK?p{UO{ zx1q-M?HHHwWCv=z+KDA`7gj}%Ei*pt!9FbS#X#JLJez9mN1hS2e#XOi5Kkb-q8*M$ zQJ+hmz?_UPr%>b8Y2;Zf>nxVTbND@;$9nh+>T}CW*a5Gg#R@X2i-Xi;v!>}6%X@c0%UBm5~Ie2wFJNC&f`Ys2_4_5 ziCaX_D<$b1m>xAx%78y(M&#PU%8qX^2M!>wC+d9Xg_>{V!UC8F`EH+;7xkQee)Oh4 z6u_2P2=)0EW2en`6Re{60*hfP>Qw?&-!MYROJ{vK_nZ2rBaZ7b^J+sn&G*`(C;osM z``Te;^uvbO9!Fva48)E&2Rq|J?1IP9A5*cOZpd8T>VeErt)93Dd*gcSgFj<`Jc9#J z$MZnEi-YkY4nb{)u787GIk!Xe2(>%Ib@cV`Fw$u|hNI>mBd`pP#5y<%+u&&A9)mR& zSK>I_h!gNOPQ*WOGCsvAsP${!9Q4|`ewx#)pKca?9Wje^xmcc!s_RcU8|R|>%mTcM zi%|VwF{<3MgdjQun`7M}%;OEaFZy#3w$Yqll4A?vQ=rD-l&JiE1btyd`JWM#pY9s{ z{7P#6OwhH7X&?5z`F)P`7(#poT#p%%X`MwIns#8WZr@`$8=8932Xz6h^>m?9T2EEp z7bIRU`i`03=R~yw!StWpxR~XleYcFlDd2X>VGWWIEhi05Eh8izl30rVUK;sMnz?T`4$HHgmIkbVny*ztzB^#<*9D_D%g3+^UP2$_S#on< zPM=#>WqCJN$0t|=vn6oemvdlkmKz~`%5IPKk>9AZ8X(WanEPrYkbPzItcbb4#xoq| z{u<9pnBQ;WnE~^AO?-B4`H^l6c0fJ@wmRZh?1WsT5tc5+0bEUa& z#yP^`+RQ$T^lh85+vZZf7O3jUG)7??kSl5 zGY4}KKNmIr%tMVY^YJV$z{^OSdCrP)*L=@51T#|RGK^ZEBffKe8ed|sZw2Wbl(Q1s z;ws#ZYf$}kJtigJM$C?z&|E(v*P`ZrS16LltWU>yWCG{I-V%Q zd=3+VZCSpD?eRXUeKeK?By!gG2=7&2x|{Ado7W$tOT)WISP-A!PxvQlo1P(UXYTu} z-6C1ugN%))e7*Nh>?~i`VJbf@aT^JGG31$X`Yo1W`8_toe^BLpz{B_v-O2k2Gb7iI z=D9jLlKFig=A1Uy))rmM=9<`whcA&`Z`X+9ybsnMsfzjiqa^q{%j{eG4@`!duW`<@ z-KeMTf2nj5|Fh4{xX)bLw0j=BK>ECxoO1GEIxK+H#oSj@ ze=Wo^Y0d93)x@GKYyTI+Ua0$PeX#^;djko+DV*Eeig@iWZQlrjUi3Lrzp|*~lfGx_ zR~}oiToKhTDxvDf9N*NhGOB)6Q1$ac)vqe5zj6&=zF$k9HQx)PuBJX}%g~h0`V`>3 z>cj4_ya;+VB^|?>xv!QRo5#o(`Hg%nUHRBX^IQ@49HQ4(l#a$~bWZx$`Z$Kn`hIZb zYZoJ5z&G;I<|bbUSH6y}eEzH>)Rpf!E7kVJ91lB_&Ow?ksPU;Q>bUS%JZZZlZEt=z zO8b{|66YV!e@jO6GSuwSU(VLh0N@={xWG-K+l@pHgvLIrtmLyv>-eW7XVu zOOLNv_P|=?$%M+A88x5N{9rw1N8P8P4Eqx1z`Pt+o>(7qqOPadSLXT8yr}zR`OuyE z(B|ekiLu7)4?or!Nynim-Rm>;)&AC4saF-!InW0=hne&DajeGjWvq@I8#<27cvuVB z*XH~^6zj4ab({y$F^SUHVb&A#IImAS2Y=J~UF%_tvTbaH=aBlCd15nEc{K+9AiB)gJ3$2V91o@d$Ro^Vk*dBK^rO!}_{m zMeKq4{GcZ`!rrL*`4Suqq+~JA-Kc&{H=^gUV@T&1rK&dldv zDz_}bmqCvxJquyBJ07w>&1*5~wf~kNeaQSSVm=IES^3cla^-(SeQh$+C!?RcQ$KUC z?1`1o3z;KWxo{b(KfOT8v>Q>0{K&Ct`W45Jc}_$352%~H3X7l{>nVm&^UFY%ORyY- zrSK=@++=0p9V0B(3ocG8MFPUo9*Cl-l+4M56;K$@h_~38V}V!H9ptIsP+qY zILp=8XS4nM7u|m9uWG+~sP?Om8mH7RmEW7-p2L~HGVg6N$H$Tcy&4gv{Ed-g*?bSnHkMxy%d0;Erv^M^N{WVs67 zMD@={NL|eD*HlAy)}{W*Fk!~eQdo=SYN-Coxz}9(j6wCs-%I8m?(`poiQ<@6+-gTJxwO*y?$?b;u;PX?gM zq5Z9p{LXT845>cxko|66gGi_2Z!l)UAy@#1VpRT!Z{(-XnfxPM`Kg1+KgyM#?Xw(A z0<|4W2wHyZ|@9 z?pmMbby{B{;?$S*T1+|zQWx{N-cmfp@-n=P%TfJqB|gDb_!-xr$`2z%aw4Q?{dR#V zpRp$TzSVltrDl0Esy(-0Ukt_BxD6NLc3gow@c{0^+7!AQZ{i;8P2KmR2D*JX4M}SU zBYn$WgkiWH595A3hWcFXIO=n=6IdNjV@*7R+K!q8Unbq!j?o0QQv$3=(2KS(^}m8S zS-y&mk-32RJ+2g}z{<*D5xT;*{L{j1$Mrp@o*-$KS{^SoC!yu-5g_gyTG_fU1X zj~uJkLsa>u?{aaV`er4lzHFw(L-S&vnSS&bJ&0l7Mdu4}<gfQ$|1`}m1*7RyO+ zJtoB?m>h2)mt5xa3&vbCex^oGwj~XgN9GD<{>Cw8>-naP=#LK6_dYn4+5A?XdCp=D zGL)I$cgc^sPsSl?^BZR7x-cPaQ;6m4SQyJ7_h`-cLv&rJ`)D+&JsNdgI2RfF&G)SM z?8ZLHGILT}pDXJ+@Ez(pFeUw6*MWJk0#?R~*c^2|sLv&I9XJ$yP@hlK!uePqw_*c4 zjScZGHo||fF{WZ*Z-V)dbC3BvwHdZ#xjE{4QY~;Y>iTXO>iTXkw!w?2>o?uc)AgGh z2cWLsGGcoyhU_!D7Iwn+*ctWtDsxABCi)}a2{X@K9LDY}U&kK!5_SERIHB`7j2x)z zFTQhQuD=>$0L$I5FY10@Kjb?e=J|{*$Y%leNgRl`aS*=6!I&Zu=L^h*T)Wtna2Phl z;n)*L;CLK~i*OY3OtyJmgU{m4^BND3bGFTA($-i^&2cjx^*P4`^ubBk3InkpPR1!X z1^LX&`VskT$(n}8a5`$-2vK0C)1~#>a(W)(f9CJ*RKdaDQel5gjha6(Mw#dD(<6Pz z+>fS@nCs2j$XH_L^O=#hGuNAXekwc5`d*^`w;}a3X_hxnVFx}N5%{@?_=ySp9_>g`i{B(+#gG^OdFYb+8JaFGtc{# z#rG_i!<4MQJl4eu7=YfW`e^;WY%u7%W@foG?|)VVug;`%U>DR}!XI@W>4uye%ynKi z(rSLfv2U*PI9APblNz+y`bKn)%9d98CHz$k=C|M;nI4sh8#%x^5hanum?T zMaVjBezVdVgBNiuM&fwv!Tz3rgK#41d6h}XZ>pJjLVAC? zeuuMA=g(j~j&o4otDK8>aX#jX@0^cRM$Yjzzo}s68v}3&%lz9sRtToxxLk%h&X;2@ zT!E!=C04^#*cjJf3tWeTQ1gp@xDg-VW_*F$FcP;T-&Hj83cjNl{amBkI)K3q^c#X^ zf6}LPe45uj@;P|7AL*NVZr{u&51{tvA-spD@F|`~^%IU2^EvxDj6+%HF$w;H-0m{> zi|gR8Ec+p4ndee9Z{Qd;_lH;D?<{Y^o46Nm<59eW>c0_q3GdEI-6Z ze2jnN6SU|DI=?4Ho!7IW&fDrok=Ph@-foL*i_LG|n&-Xyqt4Ho_rFE;w|6)Nb)KG% zA5hohA8`SGLG{P4xE^&r-ibQ@{){^R=AzvbquNb7BCM`+f3)ZCI^Hy|VSZp8k+~*yOo-Av>c;P(Eg-bCvuE9LG1@q!|%#S;<03O1^co=p5zJNth`>Q10MV+^6 zu)R88s~xTpiZ*bzgRZ;O4j#nOpUg|=T?g-U-YtYWuU12yPwQbD9EduP&PAO^L$N*5 zht2u(7ItEpwlU{V&e7(+CFfFe{?zB)-T6D`CUd@=fxTD`!9J*dsPp7A)cH~UiZRws zi#k8*exlBg6_K_y{Y&RVZC^Mch>aktev{s8Uk2VEBk0BPXRa4?er&-qb+9|2joPj; zI1$-5X8XqBT9$QQ+>4X&DC&H738}leer8?f_i1NgT-G}qH7^WC_No3YH1oaBxyZ1f z`@H5p{Cw=e@r%$2zzrk~YJY36kF!?uo1>lR*ZmOiNc-V5o%MtL&! za`JR{yF9Pg^@N8X%$#%PTH#IIGPU8F#l+{H7}nWiah*Mr3#PF%wcFQ}J|9o%Q*Ei$ zVN0dGLr+|+RWLm5U->zK}!j6Wyynfqoz0cGeoG8^F+}+Z79;*;% zX1-x#o1_dI(>J0deI&i&(|#QmQgTO*bkfaemFVMJLlSHdLTvxVx=$zjJfFN5wp$ry9Q-I5TNy=e=cj zxBWks%96O~zC|z7r8~bbbk+;*J(%<@vt>x?^ZmSgzs{RhJ$~uqL(JGmIse4F5MH#% z-2w?le)KE0Wmpd9^VRNd>;Kum^J~c?A1@r5Q|<5lO*p|;H}&zI7k5Ree3ut{PVPT> zb(TWG90SzJ-7W6TN4=-LiZ?J--!s>LtCRE{=P0w@(uscBRJBsay)D zcXtb17ynYK8S~$b2`>CPS^h~r=9vP@`EcOFy45{4B%gCJQ^n2&w{apXYW91FpVuWm zH*Rc(cu%{RzdZ432*-rkFV{xofiBk*QDOh9&Qu*;RVa?$nuk zSceX9kytFL>UnSfk-HfyXG-{WVYyN@HvV3lxvGiZSm(ln9v$5Ww90+{WzLt02J%~) zrv4$X-yckJElZ=h^S5q$m@57_u9Z#tne8eZ@9o}VVe+>77JQfbI)hCv1|)YkJ7cav z_viHp8$5A!#adqa_r?88{F_6^B4&+DmNhu(hdddV&SGM<+{C}!;M2Ww=!hfTyyBN^ zx;Hf^@;Dh)&ZN9w7qz|Z9WwU)$;k2NzvsB9YT{dGsWdRptC0n+JG$=<+w}`41O3CJ zIxY_1I#P1&vGu{%Qn+ETiJv>R+SI9Cj$Xa{`R4IL9S$Go8YYv{-#p&p_UHbG z2Uq*2?(uaKi(lt>H1U-eeW=|2aIs4VUKd`s&?5;ald~p1LH!h|$9*@w(DQ<0t7lzZ zdoJgw%qnNX*KX@7j*mNaT8g|OpJtrR#u#DZ54TFc^xD-|B^(pqx`j8W+=yqaOnd?> zexuAw0?v#q+2(qc$|;$MxMxv0b2oXFebM{7KW>#z{bwauL^x2V?Cpmx6cJ6M^$GCaz>vE|~{yE+57TYy>IoDz)KG~em z{jK&E-`9Lpz3`?}C%0uxH1QW!&Ny0nOUf}Gea?>_n76}GKI1m=#T;Wtjyu)A+S~<=pxk=_gH1{I$P+d|1@~;O1i~76m=3)|KON zu8B{6DEXtOdxlP3?R%t9+yTix(QYPw{gG8cm!^E)p6*Si%Zs{v|Az9jtNcb?mi<+@ zaC7(f-Xo5tt+0!I)y%|CO_=aW+$R6oXRtNCjP;gfG?G{&wlWD;+M-k+RwPh zT*p)8&rULY(99LDz3N3QJlEE*?Oo;)CjM=fhc$f_YJ?gw;PH*BPd;K=* zz|`YoA9Xx=t)KfJ?B6QP%iZ0!7hTykyjiP%8b$W&@Y&;LH|Dq|{q=ud{&Dxhn$-4- z{ZmJjD(+@k4vqnLx50M91#gm-7!x|FekSWfzy4ec#8v#&@EQfu5C3?=V{O>5irFe1 zVoqezk4ZDJ&x?0Ke@yqNeZTJI`J6XP#ZmfwGvZ{~6ZcV%bO+*Z@Bg4s80$6T)yC|< z+_2`ppIhbK_r-P&+5MbrG?V`Q(=;dBJeUBa9^23LOQ^M$ndcNM>?M3CmYs;^?Qv8H>aJ}&}Cw^i6VB#Bojl8wy%a@Ny zGaSBIWAKXA^ji~OZ)vGpr|%@ZykN%KHhCKsJi)WDCO+Us9^a?Anl5VnPd4Axzl^TV zJTQ^U-`s4w$E7u%J%@U~Ui3rK5lguTVB)_#nV9bR{$ z%`ILn#}236Onlu1WhZ9#X?1K+&VB7CeN0XJ@Jux6JxWIANRVh*tCGc^SDo&;jefPw zQhfE)UPF7P`_ODbhlvI67g7m zM$Lb>eMIH)Wj6l#*gTU;eDF_$k`LOs(C0%$vsdk2++}=zXwrXO)$zBuubU?QI?JxM z{^aoT>_;;mCRowpC-q_sXiNycS^E&66ZCO{zXIwzqkF* zKHN|5>&sQ*S+dzYh0)O!_rR zF3)be@>=|sJMw#D*Y|e#6LRJ?n|yd-X1OH zd)!HoWA-fOZz;6iu3ak+8g;PLiX0~*cTW3WbI(C0zOU!tU+YZrPu22$@S7t;w+8T; ziixlFsH1=5295kW5B4kF{9d*(TrZgTiWdT>Ehv|LT9dRxLWVag)sy)Zb4Si!J|EII zpOYkYmL9%2-(S@nWQ>VF)4f+j){PUYv~9fcW2et+8LJMM_<5)6j6OP~P2&^s&L{QA z-R?E_=1u(cWIpv@zev~m_N~aRr-`5W=jH={CS4hHx<`{68+&JLWWLi&`m~kuXIj$fLD9O6;^b@5utzECW71ze zwDD=JoG;(DY&avurwa2}=`9ogY;}s`brZz(&7G?Dkd5}xtK17U<8A$esl0paY1(1Q z%RiTW-uSry_b*bbJ|jQ$$#yng$KHj{wr<(H;_%6&H{(@?6eo^^{~7*QgZq#AUpred z5B=Gsf0}&%oFC5wFQ`_uM$JK8uG7zhP5izeI|q);G$YZin@d7lk6&?;>kAXVtbF;U zw=?apVE^G&A>$&SXFPMv9L3$OSl3e@zD_!r`1H|{&llyH!92O1iO+B+txW_z&w9p=EwSO~pQ z+gb&`M}qB(Rk0N^9NRY5M6IJ11|g>hdp|PlnCArQ;U6s1tkK&a($u;AIf++&Vs1Z& zm-+m$9cJV2ey)6Ig}d@Gw3~dKKBAxJYDhYEr+Hq$8ymB%{?iP{VRM|0>_+oBbW8k& zWwyn>i>*=Z!B>O zo{^~a&?n9F`(se+8H~w%R8|!?n2dLH%7HrfUCSl#K%6)7mzLy@w$Jf^(~5#FWi-{%YWpX;>!0Uw&(9t zW90L0?X17rCieQ4yYj6-`l_`uM!q0dzLNiuZ<{Nhwz~*_*LFv3U-&oj={~Ktk9(9R zU(Xo%+_@R7{q|q=)csTC<6fqz=lB@;{9O6|Yy2DL$~PQKk$*&td?DY+r~AZOUw>D= z0WtDLd?TO!-2iv;MWDvpyQp??C~%Wo+oyV}U+R5Yf?kVVOpr@+H8i<2bu3p99kqp96DYPSkPih1yPi?h(~5gIwh)UF>?KBc1Az9vzs$ zl~3&!=E~>Idu?~jc6-crDxda)+EV*L_0@jRdbL0GP=MNPAwl^QV$?Wy$CW<<%MpJU zJK{YYi}!IVKEOHn5To{Ih^t)Xi(Rj@)ISaJ+AbZR+AbZ(QQH;7`v_Nl#!k~78W+bC z^eRdE{8$Q^16ZZ85tcVFz_oSea&cowxC=TY1J3r3ZvfApDROy7@P-XYSdyf9RGhf(DnL6vt5Ro-z_dD=#A zS9yDRul9}EAD7UM>IX|v{Wt^%;R6ibGtRaNJ9K* zR6T9}Q~w%+YA5=-T_49`RC&Ix^6C;FySxC>sl2|ZaibsRL(P*kz79anG*b3>pW;|_xQT1}~?A%VBpJUg{o%L#5PL0`+W6;b8 z80XD=fWMjfKzdYpehRMgD)T;+9j$saA?Q_&bn3q~kUVByt@%(bmUE%z(|M3KGUZbz zGw!huOgpf@qw5_Kqu!ba#N0nu*gn9U@)jH6lKCdFtPp zh*!VPiRZ8Ys(+V2^>6K;3m8?NZx?5~s*lDl?LZ< zR$PdyJhf}=dC$r?&hl2H#(_1cdgy(GD_?8gYk$PUf&{(1X-}=c3Kl^hWZ#&1zVfT? z-d&yBLGzg7KOu1%WAx&;UQE04jDl&`0Z5;>2H{cU**o(&Fuw_4zMnAyqsk5C;HOAE zt8DsR%yKy=o9iR$X7*!dEKa&CuKLku%yZ}2u^sUaRJm#=M>l7=>i6o;anXyQS3c6| zIN?||{f~VZy}!I&`8M(Q*vA3;*wmvWsvng??T6Ah2^o{@)ku3sw|k_kJk=@oxId5m ztMjZr-_C;zQ2l8kYCE*w9850NK7|Oe^UreSpN-l!&N-(4{De{YeO>w0ZrYxB7`5Lg zQctx5bvOSmav&CCc``=j4|3&KzlfcGh%5h4RR0-#`0d{McNW`~nE2VKa)VL(`6rC3PlPLf2jXMbrzG`O`;|tW zcgkP|EQ{Y`In?&@Y;kn^`Sx~hAIFaA&oSFiy4=P)h(1tL8FqN>85KeeTNXCIy zkWiPnn2@Lv>n2ns_z^}BRuYa89uty%M}9(8f*)Z7A(*g(5Kf3Bq^(RH z2%QMQgfPN0f|ob-B8(u+BkUoB6Cw%8s_?89p(eqf5J*@{2qRo0ye7E&ux>(CLL0&W zLJ(miA)N4@;9w_JC3GSL64nw<5griU6OvUW4WS~T4Z$WXBJ3eV5Rz5nTtR3;7(meH zE_(k5UvqE5gc@;s)PW-Ji^a}n}m2A$PPk9 zLMOs_!b-x=glhzS0Vyw`CZQ)Gh!9E$C%h+k)MsB3IuWK4))K-AuL)V0e0dZ62vZ56 zgqs9+U$%wdPY5FHAY3Ep%byN{H=zw-2w@Rn58)<3H!mH8nuMN&sf3M$D}+yk|Hs~$ zz(-M}ZM+8p1c;E~jDi>h1mrMaKtP0qLjnd8ZbUQ*Ng$D2Bm;y)9WWv&YSgTPqQ(^! z1zlFrMHdwn6cv?KT+zi9S5#KeMMXtFT)+QY)twBP6wByv>GY3>CtXujU0q#WUGGs< zEk~0Uq=FK#8f*gxK+7?d6N~{KPzKh5ZD2o$9LpFOOajF~_Wa!f4uD8H#9m+mkj`-h z*a&ulgCJ@=Z2}~N0#F7vfL%a3&}h&Xqyp)zmV>omE7%LdFXs7!1ds~6U@2Gwwt$^L z6tU5u7f1$KU=dgiwt#)0<7`4X(ON*tOQ%YLC_(c`v>#D3a|}?We^SqfecUrR)CFQ7YNIwe!(D+0ZPCM zuo3J82SJl5lm#S%0#FK8gDqe$2%k#bf@DwtO2JC70c;2RKzJ6{0fWFKFb|Z0wO}jQ z55lvlU(gq%0xwtzHiO+D;&So;abN-{03~2KSOYeK?O-1Wn?_zB79@fUFb|Z0HDDXq z52A8tH(&zrf|Xz+*bAEEk{+ajMPN193c~WJQ;-Zwz)G+IYzJZaqydwF2b6-%U_Xc` z;5U#6vcM9s25bQ$q{e_`kON9UIam+2gZ-dMA?ZOf$N^z*Nl!0|%E7%Fd02T?N zK?2AE^S~0Y9IOXBza;_o>H&^Yy^8jxR-kdy+ATZ1s+fa)_`qbH#i6)=2MR#2E>6>-~}teTCf@H z2BLgv3u3__Fb3p+d0;tM54M8cApC0D8Hfc5U=qjyBE*)0afZ{&9n2POayCg))FaAOpyv5G%lXumgzT5)FER zF`xh}0-L$No!}s7$-Tq?xz7wB_qhUW1Uo?(_t60)fDEt*tNcg^+Q-^AV){!%8qa+ zn69Z>e}$c+b^0^;-FwQRdZX@PT3>T6d^*3!!gAdh5IIJt>r+iS);?5nVQ2VUe(z$Z z2~wCq^k>$0dkBaUK4l} z90!kv<+C&nz8W46(@bS}{XhK`Qpf4?aj(_^o^dTW7RVv>6A4SboC*(s+rb0j3t*`q zr@U+Ie6|u^wY+)6JB{#s_(He<_P|B3JRAO2`aXsh|I=T=J6@OfEz(uJ4tc5T@Hti2 zp-rmm%!lPV3t;JPsiXhtuaG)HU#Go&otm)o+<3*k(ynL&e*OxjcDldY>FU5zw{kql zdm`;`B`odzA(*;2B7cQ~i*C7HtF}CZzCw2@ONOj9(7ako;!XHQ>sa~(N4DsPUH8N zeA4Z-uP66XwO`p`r~3e=ttx$<+;@!N5?xMd<5kn`wbOk8pTqB8!cMv{&SzRKH)Kue zGih>mURq&xX3?afd7jL|+{}#ZG*9NFndzSV{G6gm>4lz@$vGL5Mh{NBFr{Z~N?LA4 z&sYhaR8W{Xc}6xr>HqZ)xt^5#$(K*c_he-j7EMYk%AG`bQD*woqOOFCFF;?nw7;!# zadprDtPAM|hG(Z2<`?Bp@kDnR)iHW_8fVe*MMasplXEf)Rm>Z$3*1)vtPCl1Mn**m z2aXz3Sr+@kxgIOCIMa@(Z=|?aPrL9l)8(Eg<>vH^?JBW~3e&4(DYpk^o!fmWS>(wt%p8?oOxn{3|J(^L$S?F!;J%#BOWm{xkh=#Fzzme4s% zJCf^c&}FfteaYeU>yiB3h4v=QZ|Xgcfu-N=21|d@9X=E0o2UBW9x%nTE`ZO5rJt7f zZ1b&*BS2H$d+Dc|!O?JYSjr*ax>O&31?l&teRl?O>?R*c_itFjK8N{s9^$W1Zl}MK za7pjm&wXg8-wF5T_mALo_+K!6@L~NG;%t8dNmsR8O(=h3!sWiC{^Y*oJ$CM^l)t@p z`bQ~~^lLmSs|3gqOMI!P9x!8oW9qLElcxKf^SG{*%eTJ2qS(?7zJX~2)%q(G*y%sE z)04$9^;bxptjjOooT~l>o2gGJ|0}S3-(H2=z^}oy*=qe2$`6yDe6J+G4R(Id+xfj< z=eH4-dfWs{drk&B?fjnNZ>eA3_INk-D(&DNSlV$pjEdrj{1wV=KZqpaOM9#hJKtRy zU)1CLDp>B@%Rgyf^I?f2=;tEum)v(PSl$UaE~0*<9ur~7Z#XRD*%9z%a1!j4YmJ@HaKfvWE0XKc z1zU~aRxt0N>UWyJT{-7BHQs6lOMa<9CSg-uGKN(1p`{#SfEItg9LUNXFCmCEr+MVxv%ePN%k#D$ujxFHsoVT>gN1HMFD{Qdym3A-r)`Z&v zIXaR~-V@$cKYxXtcDhISz3O|wGgj@1_e-^-9Fxjs6NTm+R*v?V@V> zVmtk8SlZ7VSl+9-u#{i=yHq>i9bKK=z&^LvZ@q$MJ_kt(Dy|4O9XQCC!Vy6cv#x? z09g9Tfw1&zgWyZx3*mHl2u#~K#Lv_5f9OrP>=okMesAFx>Jok{EafhPW8pu*&i#6Q z{1vL+Zvoen`YVLxyHf<84}0K&@C;bWHxqX5cb}af?~ZDJzV|ErlH@1-k~|N-IqEr_ z0n2wG8lDEXhUGrnz*oU-;RxQ1E!^Zj(4-IjJP<#HC15Ss0(OBg3fLJ80vVtLtOVe9IOT6 ztFRYD@_>4QR8Rs|0P$7W4Z;Uer=S-|1gT&i5MPB2UTI)sl7SgYHP`(A;l$3!fMFpAZ*;BI9Q|vUv{{ zvr)x)PSstq%B!N@FU-zCCuQfCK-?bcx;3~{r)+XJh50!+3&^uUrE0yb@_SO%=b2I% zJP!(|W_pI^Wn>oHc`+2R{-g4mN?!5qY?sS=Q=LC)MYGy%W&S#?_##OD$RE~=D&9Tz zxyzdTkkmyp+Gam@nkxSo^k`_+q~%mror*8dakPqGlkdJF|SUul~ht^qgezqv`iby}m9YcO{9bFH)2IM|u zEcuD5r}tI4q>q1DUH49P-kfVX_a*V8D$dWOoD-D}Z!hoJ7vM|K%4!rDM;_H2aojS$ zyWIt_yjMxCisxJLUdiwBY~eca zPd?YKsHX;2Z?|q&^ee=X^DI>t^!@hv1NQk+`&>Um*6rfl(Y@`i!MvUhBAeCDzI{>0 zIhS9tCH9Alcl3zo`!Y<0`>&C56N6>u*!r#EAi@)Kg#FfX`9#I9KjZx-XWw}J`=9*Z zOB=g=)cOG9Fcsf_O^JOv+;0wkTLcHzSlC&04*n%7+!u?qK}1OAK(Psy(N(j)Vh)n4iTD5~R%krI5*1gkbzj$-WK*BCk;r?qe<*0D~wV0NwaQ`{c zkE!RfpmfirlP;cc@239En>@AkGWv|yReb+7F=}^K_3yXF#rZ1Sf32;{RJi|IQdg^R z|Fu3IRN?+>TzsIy{ntEc%pkkEwMT}jaQ`(BzUF<3;l0KLdUr?ga0E8P6-(BLV)BbM#3T_vpRK zKED>`HS;ck>o9OAgSmzmc~{MqLe5qB-3><){+NA^-Ac{zlX1uCgiE=$Gq{(5z4+<1 zg~f*~5zYV+^R-`y_!5c#kcTkw9di7HN;zK%Hi8}CAc&%(#2+XIo&a({2@pRV@xc+_ zn=;PVg3VwTNcB<%Dl-zqaLs5q0b~I2aS`KdWC`O&APf09ek*OSAr2@3;+rCVDdKaI zaV^&X%ZXdE7`YV|zYy^O5#JBx_d(cR5V@3o6*%kFnAW9{wou)=2O;~vUjH_V`sv5x zX$>Q)DETZ7?!|dLJP-yU`@da3k#@bD3J;)O+S&CZeb6AzrB6!*A^X49lZNd7Gz#=U zHE9!VfgIZi3Wwi;hr@rj+l`DbPbT~Sv6cU)7Wpaw#0NlLw4){e*G7oyY0LkmjLGFV z9fSetGe!R2ezh(C4;gJsXamIte?+psPFuf1zWQG>zvv4-R@VzxvX$rnoIFf2zsOu7 zE9!XR>RNG>U9R=N)Q8Athyv9e74n(1;ls&i@?ANcd=|&=CiyIZ z-%RqE$WM;XgzO;?hv@QmJ;&~mY{&}Gn%FWLs&XGI=okwT&42B`^w=a=4(BOa8 zspv7nRNPS&&rjzSq4Xb*P(GJc(U1n=2BPB0^V9Lt)iq?FX1>VE%R{Mzlomv^U-9ly z#BHRmF_h<4U*+3KqTBJ4rc5cy^k^LfYJSV5;!afYR&ae*^URx-otH5*Z%V$LN&As@ z*IUJlQrB-IKiK(A$S>4N2Rp9lf$FHZLws}}x~!5)@{@MkRmF)`=aOcGIzOeNt%cid zEm{)!ABVIxQ(F>wUD}$dy@)O#j^Cx;lU#?^yCaKBr+t-@T?*!Qd1ZF9-k*;B_qabF z-0>7IK}Z(Y>(%{MW${0$=YHpb@4x)d<(>ZT>zQwy`p8#5uS8D#9m?qP9&J~Br~U?V zs=kA$0n~93;}_|2$H0wYk=f-NISH2Wa52z*nC_D~wIV={{K0`}>6LD6iJkrra7)hb zfW^-GN4O`v3XX>#frr3M^;|J-zCVyzOu3-C$HnTUHq2n<#(>-$jLG%ysA|G!7yFvIe%L>{5wckg` z{(t!O3PSe(N`JPH{Xb;?5840ub`P%J{(tQJ|1Zxim?4r$rR|@g`AO;jUvVc@{Qo0o z9P0n?=pOKiQ-@8+h}!>u=OZF_S}7?b5{INX=F0Bcj_9P_W=OlwH|?lQ&y2!6QtGtb zZJh^euBanQlhS!~Kvvpdr3t@;LbU~-lI0%lB$^wPl&smG=J{wqJu||JUcgP5Zz0d8xGjhpW1%wEtgdpF8&dZ|w7s{a-+yZi4T;I) zM~@jL_UyyY18BtWS2f}rHdf-N43rv{xdEqPpX_SO$+EwV9It_TU<3F|Q@)kaHIRe6 zPT7^5CbnBVqGwDYPBUzwViSHx#aqXD1Lk|yP&QGqx$5+%5UzdHT~<-{oXnwl17>?N zi|q7bOV#l*xR=JPgHi_@t=L#y>;Q5}uJgHQOWEsB&ag zZY^uM1IKP;6w=qmi>z2pA)(>>)6w_Ey5;^)u(jdAg874E-p>mw@Me;?LQRk;5? zg>6tuv9Gh=zH27`1(Pqh$#?uxm4Cvhf~M!B@9MRm4fGe;@0pSSi2%ezD0a+<*UR)0_v7itoRV=0hsnfB#X_ zTnLkoyJ-$aE%ly$(do~(ebXWJiFfAY&i$ZEI&#-X>bm~>ESlydwCExA;J?ptpmP;Q zs(fO9ikaGY)GfJ}U2w{~lb1gb7x)~8MJgZv{Z^k+;ipIRtXsD5rYApXpZN0hJr_TK z?54u~_q#RC**K@C+^_$B)st1Y|Ng$Wsc`@OEMHaO{`vag6oU#r4n9}jD|W7VprxpOvsy#IxFkVo%T;r{#Vn&x=Cuj2dfzZ>Wr zk4Ai$s@o4fQH76eb>C%we!pSsr*0m7QTi)W`M?#ZaQ}V#9#rA}`%3On;r{!5w&^X` zT`_%Wy&vyONNRTJEjhj4n$PpSP=)_+u+`PCeRO}Lx?i-c_1A_4k1_XMh5PSo`xh1N zzYl1jb54%e+@yb~^84@mXqvMWfgvH%<-aec$$x5qia&18!TfpW+>txu{NDY(TQ(U( zM5YRV{JK}$mqh<%)7KM|A8ERLbvbJ!sBr)N%imYw{`*;e%@}1J(Bn5fevPcbyb;1y z13CDli0iVfpW=1HG+niS15HEu?T3GyfWd4iq+!k5$R_3(G z8n?1Ot*k>^oqvwZlaa~hsb1}qQ`Hy8nXA%-Z*g0Y0ZM=~UnODTp>tMb4OE%4;yYiZ zgqxE&E3zhO8Go;kn++YI8u$&=z%i8nXQgL(@{zEV@&DJz|02&n-;{nNKfN$>N_zf` zJdcv++tRu1=b7vSvfo9dYtG99hHP26w{LOZ%&vF8*5Y0N3ETYy`GMH3x8*zkKYN$(YMK3%BjE5{vUG!+5e+;SxzeZ|N3RvM!fXIAf?i-s+l zejQ^+lYL^UieEPS?&O_yv-&h@IQPyGxj*7uZ?apM>=W0ie7^Y0OEr3({lT{hE&h|{ zy5*-jX1hh8_6d`nz+?|F*^L6#`vAT4!?y*aZ~yXX=C&L3 zwa3dZ#AL5E`FR9tmkreaBTyZa$uGpT_N2)##AM$!*>O#N9wvVdlYhqX^0)Yoab8P% zblH({PE1WbkN#}?Z(Ji}jYMUK6??477P}vPwXu&PZ~>=2G! zR_qbZT7uQtX2n)vKyNw&4iUHizK1|^~Y5xyP)$?BtncIT>U*@!A%z%sP=v^~On=d#E=nGM+g%e{K; zO4a!)&Ri9lMmvSy~`z~bND2-fk=RKLr71!vBH{4PHK&hJ&{28FOv}hFR=;Qa{9ey4hj?7cHMkXPlqzejiZ$7~5GX$M_&X}(eQEYC>i*-~9|hAMC6GiuKHbo(0eT;!SQ_^0~J<;X5d$;+HdRKnuj zjp6%LnxR&6%GAgj?3Q(?I}onZx~R=TZmEBnn<4kfDtXz3MIKyibRIIVW3S3%9_t?H z`j{@!EKg=`L1jDbTPE#UuZ7r%zhc#SxXM@Vg)e9JRNV|z+2jF!qwjl=zR(F zwGs&#sM5AkX>&63rg|7r>N3fEk-w?5>DD+^CRv-X@|x0y^}Q6Re5G!;srY5=2Q1HJ zqFdfY-?<_3_mR#Ek+$U9rsX}T+NR?Old?N=MSRH|ZQs78%?$*Wzf)&Oi5+=T-Zx$^S@r=F8hQG`Rns zgR}eMtZJHTVUnE#m4!{Rtx1OMfa7kYD{RBTel@<2x$cKAuX*!~zh3_#{euecefE=A z+}Jhwt9Ls+mo;$3m{ZNVS(9vQ(iNC|!iN#e*0{g=31C+8K$`qf$APjIz5w3#AN$0*)mKv3zP2JWXmwwZcH{B)7*?e zZ5$?BjL8OJ(rub_DkfcsNvC46p_p|0f!bC~HjzMWAHlM5m~0s)+l0y1W3oY*Y&}QY z1|f4)WZb0X9W754AX~|hl~1iYR-;~#aowNb2JjlV8T@BB3VsZhvD*`{+LE zA7e>=tq4B|twzVqG)6W4n)Ok8gnOkD5Xu$O=L!Smq<;RWzR@YOK)p!OnN2QT9Mc^Fla_a&Hl zG-|&Z^7d}yoIJfd;HB_xco~fOl$E$F?|yhW`~%E2y&^M}!`tCqm*{ykCcUk%&eoYn z(~?Y2RNZZ7$~Fj8-Sh8g%KjnyzyDrSrf*=#{y)C&+{LWT)JOUs|M`HXZ&#q-DATvs zGzK?)6HMPa(>Ec|Z(zv&uYIIV-(Hg}ezd>6fsW-(V|J5{AYRx`gi-Ben!`9M1kP z>kx*eGOjH4S!a;Ju49Ysz?kg7T+SKzicQwn9=i{_sH`to)h4^2L9t_(-O7O2Sxc}w z+pG+9Hy*}5+l1f6M(gFEQ%{gr?WdGOCGxUF` z27*-sqH{S$>;Gls7v-iE=%xQzkNubL``65haKGCW9Sw!AX=N4`dh|~7rxEVqezs#< zu4xS}EX>Ovkv}{W%Z=;_7vUED(GK<7p!_0|;Hh?xJyq4|BH=P*328L;x=O6r5Y7B{T^K7Fnjt*GGf=R zC`W8f$ycrKqSiVb$lqUbtsJ`?`aw|=!o{{M_2#mC%clJsbo>Zq1CJt3u}U9LT@QEf z<)X{c$%$>YX1n@>YllUIMG(i?hfvB~^&Z7GE`_~K<+*j+&rLq%bINw4&(ql_u~;t5F*vN?6Au)HPe%#%8@dqFh4g%-H1f3 z?%7JcHR3m&b~tMV$$oy?zeQH?k!K{n37@FE2dQ=^c~x^%)L}S3R#%6j&y=+kO}dFd zbr8o(4{ws;O*$acJnBH#UNqUqO*$ZxuE!+XA8lFPq$>&5T8*-ye59-H*0=jVKK0#Y z-?$dtwe9v5O<32pw}ktzSr#liwMlk0`7M}aSJN7ify%DIT2srI&KzsF0b5Ue?pCi{M{)^;@cUzz+6O!j({f5OrBA29g| z1k3Jkn!9B3PczN&H2JNW?Dc`J!D{j=Fxg-NwYB)_$Yk6)fiY(k13?*g%HQqy`)kH5 z2|$n8^;lkh^R;ESWx;S6k`doq7d{IXn|6Cxd_g)pCbFL%#aWASor@~U6(_kr2OIXTt1}x>lHPjye z=`p30r#@jBK#o~lS9mTQ38Mz|il`#zZD7=Q-cImBSjNv{>+S}lHdf`9^Ff?n0n1ob z&UeFN!`^-;>$ic3<=UQ|%#TN6(_TU$_5;VZ?bx+tK2itrsyZjhnU8e1xkx44$l=zB z>`T5S=plXAiu9d>G=|@09#XL|SOYeL=k0qArv3ka>1};=wiS9b>RH;wQQrU0S^qyh zEr%8RQnGUkaw_-#vr>QA9Drc?`}gMEcI5LVv~xLRdXMY@a1;1Sv4*;JVP_nDE zb(fVlLlg`mH;Hevjyn=R?Rs{Y%X&kl?}f}Ry94;{1E77dhmvldic`YxdTxNuCsN61 z9y%A7=sEK8Q#?3sOC0e*pRLj?QRm_(t<#*M(#U@5yvZ~5wt$uTgEcD6MeL8~R_SEj z{r^*8^*NvDmMW0GuMapA#?gUQYl=rkQ<-fdEVtQ%@c~Z{SepIjNUo5`koY#7vg2R|;jN4De&;2>8 z!{$~=?{7KvnmIq7F_r;_NyanDv?kg0)9zB9U%$VBNftH9oPo-ICK)eK`}Sm2pWzFp zr}p0ae%&>j&wORx@K@WL*XcLew@qVlldNd6dz;4SfsVyZGPX%(Hp##zyX+dMjB3)^ znSAI?GO9_pXp&I_)d`+xGObBx7pRZBNylf>MVkCv0`*%FxoRoUV>CU++{u_tu|Ex2J#Lap&AI)Kwvc>^8Yci|ECvvvN9b9fL~+(50>nIfsgFJRs>%TmJ+c}1!>?1 zI^i`RY1_Ol`*RQ4Zmng1z4w5~<0AX(xUH33J%aPUskFm5_m}x){=bgjO2tp){0$X< zl#1`j?-WD*F7p1T>h}TmxyyP-ox7F1&$oeNd|I|=Om=RjPJ^k-dQHW-NZI63B3KFB zXFu+{=D_;xYuAW~5H*2gckWMkrA_$Iyc$XN|B||p>xqrnx&B0}u63@m)jRpb9g*&! zmRpzKYKxAdkWUNwYJ0oZC+NDBuwMM8!({KiLwy+%qyclx0rK1?f&b&V#i+7+Q*yP^ zsp@l^Of*%G^4xUXw(4A-+ZdHr>bal0y62Ftevhko4inUQ{ffG)?m3LK(=@|3Vja(5 zOHKPZ^u?Eo@(kjAo~2cTYABvX+tBwcI^QIfPvQ~i zcxt)zHH^o;k%^M`#&RTzwBSB>elow^|bduWqVO|$QUsSWPzXMUHVw}frXjA zy`VfR{eDz^b~=80Rk!1KpT?{7m#Fyi9=oi{ep9W3qJEE7@#XzXR_D4O)baIuFKt8m z$>Hkvi7LM6J@xfYSNT`>zGkWT7peHeT`s#khwnFssWhY2vks#Uy>;woJuL8NeXYu? z@>%QpxRieL&}TjH2%oi1f9SK0qh6~%Yt%M&zggLrCRc=2_NDs?JHY*!bgL#E>haQ* zo@hEzlPn%AU8zZSe^}|38ogQc%FjC*2+HjZ|nY2 zT-orFn-~69oeq!yQ|*IUn2VJKy{*l>OM`fb+B}tCf$HZmub=g zm~@=M(gB!sr6ya4Nr!5(b(m}#!P2>&Xu4ICuGHj*W73J5bg047ahhxwCL6`?O(zJlZyGa)@lW zhB1}Mj-s=a@q(69wQMZEF;uVy0XfcNXe48NWHjZQBD%(&oQtk;ARGsaOcoEP!J=z) z^3`&emffo6+ktqJujn}W+v)C>|=sL&4e9~0@v9Ob`mIbu@Q8i!2L@M8* za68iDGp+I+0aG?B3BC;GzP%#1jDeke^*9qfDB)G}r7UWliV1Lge&?ROBDY=&i;gx0 zmi$uTEO-jM9+tIsH{V^UZ#|r@wd6LQ)0NE21J$jw8w{V8!|7OeQqF@Q>K=5+;81z} zm)ZZ*L-zkBt$wzwko`Yo|8L#Yx+m(PZkN7>!(Xt*#v%Lv#dUJLmKC!9&+E~hZ+Ec9 z48a;3|K7&BA^U&Immgu^4%DaJB;yAC7{r{#EW@i5C{r`ex`yY&+<80gRb%1_YjthYJ{R`u&Z*_i9*}bIP$}TAO z6>MDtn8hG&R?40v_G2BdiGA*}vQ#>kO5>4;R$->cUO!!ISX|mlP;u(2G;Xnosq@;L zSNh-wGDqFE{rHrvw|juf6T1-i(!lEN9%G-^;@sEQ-n2H^$zl&WS!Cy{@~JnC*-jQ;d()WKWVbTer%Yqo zV2xc*cDvQdGFQN4w=&teOm-`iohw)}d&r)Zy|w&r%nQc&5$QTRds@WqX&?4`?3!fP zAF{8A$8Wp4gu51Z8u4k^mEqHyo&NW8;)kW8vsdwB9}jD|W7VprxpOvsy#IxFuCpwY zkN@$qa|J4!2P%V`=EMZc&Ly%ob{>0NrpI%e8K*IPt5|Qm1NIkAm0d~3d^|F5OBfrI zHyZ8%^SG3KYXj`~#viF)yv#?gZZ5KE9`e!jjbDkaCKz+BLiYdjR`1!({8$=Cq-)2f z3IF`5==oWLe@NW)(8BKTS(a&zQ>ec@e1Cbe^ozem`@hKl$H@O*od2`)vOOn^4qym^ zxHI=ZgYSbJ(Lm~?1*najyyG41`znP`kn6>ueBpZ>ncdB&gGi_Phxz2j~I(3OB zM>yz!kL^L<>v%E?WlaIOj>M_vP}gx}_;NBi+P*JGdrV-`HGHpR+9k!|Z(bjN<*Ap% z{4}jm@f+LC>+T0@Y+>?kHO-T~6FzZU*lMcefLkEutn3a+spS$=`x;a)AE|Tp7~;D zOx%I@Y9+S8kZoGeL}YS&HSO_~9%u0xXWklnNdP%SCYQ0-*|3bi#MjeFr^iPYb7oj0 z4EUxSNIZhXC)F$CDe*Dg0E?{d$nB;z#J0|5?WLnEt4EcyrrAQ)AiI`1V<3Fd;nxl8 zO#B3ZKH`|p{}0*!X*8iDR0F@G8j$|>7|H*7Ds~Xo{|}ZAz)uC@<=tZ^yFlb|7Z z0LVP@3GLL{f4c01RX6`w*6+Jq#aqVjdMyB*u91o_wt4XZC{pS59M&gQ{GRv-$hpg! zr_PtKFG2!qr4JXE0BZ{vMj0b&o?hEsvrhd)mcAcWyLLna!W!WxAm6}?_&X7hLd_dK zjqqB8%ldt?j-RuZpRmmBS7oV@Vz0#@VY<9mtLw+$|Ip$H=7jss(|6|P_I5v_@;G!Y zKlxyrWMGrbAFTPNrm=Of*6jPe%|nguFJr-{o9?=*_@4hudG-5Gi&j0~gYltBmNv=E zCi}d}SKTC&2P%7?X!BN0V|SD68mP`CSTd?f7B$J_CK=Tvs|PB(21|xF$-u$VaRe$$ zn{*;38QY{QIoh(fNftH9oF|&BZt@qqt*7*FJNmqM>0KK=S+{lUar?gy+`GoIURB|L zyecQd9iH9ro%7ynl3TVBf8#*c{tHz0Hp$q5>iSJOP}4s4CLN_|e|wY6Z_-5$QQwgT zyN7;S_xI92w7vFG6p^M7Mz|z#e1j zv8VjjfG|`N>X7-TjreNF7{Zp{|q3YzYV=4cOq-cx(ziR)#V9EbU^u><+FZ223kbYU} z1l_Y$uNk`94tnkXTrK8S$k5CKnC#30aAas5w=?~>%mt|Q<8R4z{+G{yv)7#M$6t}R z_!9I{Ww5MMD37nr-(-uf?m3Ii`Dn}AC%as2lE;ph?fP;xPAY45f2$`HJNl)f$E@4vT&fjASPMqc+IOY z+2Bn&6O(N|P~C{h=fmXN5iDN~lg`AXQwr4g;%Mu9Oge!;Wonbo-=sS-*#drVx*(Ho zKTw|x(;7a(oF{?Hi9PnyKVNAPT`~cMNv*C+5pAQqq%Tx{v7Xa^#@C^8FI3Ioj79WGZz~te5 z1I~swz`pY>PB!0xG52xveeSX*s`X#%aqjF1c<5eO zIz8S3Naz)Y%83$CHk@h)zZK>;o zvz+2Yx3o3UEsO=Suh}>tei6}fIsYS$>`15Q8fd?W%KAQZFSE-1t>Q?d^$xo1AsxaM zKjyc3Ei65+>uZ->JihPT#g=8#A*@q6gqmw(AHCqKbMiO*>#ED&n%VREkPczr6Nk5( zhja)vJrM^PZ*~zK-Dl6G{I^|xT-1bRQ6JWBed{gkqk4{n-@ah*k|k4KeCMN|c5Lc0 z`T0$(y~W@((v|dFW@hPapG^x}k<#Us)K$E^Ass^Yi`_?9)~aq&KimIv{U zWg#6xaMyJ_7CHpF342^|!Sdw})GijN{mWz*4wn7P zq@Op*svjv?^}7oPz5dfv-S6G;-%q!m*K5U1th3WW#?15EPHrAMV01)}{8gJW>fLoM zK71&~*%Nu^Rf2kTtJgQz|r>E4wi4W$&PH2^-TUqp|x5%jO_f9WtA!&S8c1- zs1|n@yn03Kr1#?cH+-CZf*D_kE%aoPhmJ@86lgybXn$iGU!17+|26hnN^jGCM0Rfs zuK;qKsP=!^GthSp!E%%kC(HhUi$Xd8-MB*k|E_A_7|Q?YSz?k6!uo%WtZ?`9*yfpk zUzjQMus|w@V=4Xb={C1*#<+XBUK2pyP)c6Dy%2!d&Sif9 zmo+6jCo`jBy+1Bvr#V~M^+n&>N9B>{@~|?D_yS1(?y@TF?aKdO#fesFMo@+rb)M{+ zVBKejxvZrsEYjt+-X%=uW2x)sWss$cmq6OFD&8lo?)O(a%t`yRRm=LKq6~O<<)o#{ zeuwey@uVA|(oJ#AB9?Q1$~QnXIpi6%$}@Og0VJG{z1i*nz6 z3gub3RXN3np}sngR_6&7*OGe^ABW0ox3FF(Y@jUp4>d8^&Y!FzJ*`y0T=I&krr0?Hzv0kIC(xnLK1` z-l?yfbxx6@)`wi9{hd_0?!P429eDX~?HWq>D4jY$hG7N!J=I-D#k@L6Z*9 zq=Pl-=uA4d6HNzenj>bK<8!>`J}g!5`{{Qt{^`_(uMNI@ZQgmFmS5k&cUtLS=Qm!M z|K<0kpWYZX?Bm3@m#wm_S3??_wV`ID*2IfE|Be zj75Rg&Bf;f$UYsiujT|Ua=5)UcS(L;;}pKdBcXf~_Y&k4W0)3cdfI zDm-B#tJ^X@ubQ04yG6d&@x)JG&*|T((mjAqVURnH-|N}wq_#yaj3Vr!`z7xdtm)T4 zrISVf=c_P%9#wH3Q891dkp(j;*u@B7Ow*IngcmBKK~V zed5b&opz<;pQ74_ z=r8V4=~r`4{oH4gCp}VrQDLS>>RZ}X6GB`MNV^(H{nwywCc34*MQ7lPEY7omT~Ia|3)l~?eav!KYUv-`t~pBNKEqci6#dgZC@OdoM!UT z36}h3lIH{U#R*idGwB5awSk-T2!YChfy#R(xh_z7%%n#!>1R#8I3~GnZf|+-cARst zQ_d?>Hx_jN@2n1Qo{R5bpn7VPUL#rclm7bOCp*Y>=STf`(}n9k-aIp*bz+0$S*N3y zSM#Y}UK>BGZ|bdY{_Dy)cj$QmdhA{yOK<1ufq% z%3Wqz(^UA9I(7ct|I__#?^xn_a(R!E+JDKUzYuwT5zw-LWr-{y>xzqQ2eDNh zxSM)qjK-t&c7wS!HP7N4IGuCC)P4@J@J!AbbbGIYd&2YK^WY_LFIeRI3*g(}IQR}& z@)Ox59+vXZwCpjq9(zl9WK7%=$ib(^iz!CsBk>D>9&_rktHiHQSO$7Zmbk^Mv$FjR$U zT|kqH^IBMuC%VH)E3&`n0Yt8I(- zRrerzfH;1W`th|hoAd)B10Ga$R4EhI*4MEdnXsp=KUiIpOgW7D1ND4t1p@J$y7qle zLDnM#wZ70TRQQbe)>l>i!hY_poQEHpuaYoxSrR(dZZc+A^=@fc$?4xFwAwUu_K7JY zn`GgC#Yy>B4p@D6+I25KHg-?$?8SRC63jjUzc*Rfq!TcWu}x#?KxO1W$KIy(<4iJp zu=WxNmaJ`(sZBQTV9C@bncXB)n`Cg)yq7>_?LcK}lWcyX$=Y31KjZJiWRhh9mCa4Q zASM|+ShBWBrZ)MCnS8=bx&@ODmPvkVbXQkIEDtIXT7<>`@BrMmHaegBFHQWJcdz2n$%3h4VvNE4#B`Zrl+llMQ ztBx&OY}nP=uYalS`dG`X8OW;h!1vr6GW=1s|I1vFuvE+1{YNf_oLo-bndXWd!1f~pe%`!{JiKg<}<$=^x}N^)%*swf?YI@oU7K{NIU%#6QuGFba5#20C z9&)lH|L>NH;OJ7*vZCSoaP4Nu7td+=Ul(4>mE8!Zb>$aL$x_bjBEzdS^)^V{Xjd(( znai>Ji!Hl}j-QRLOUe7<_a6Pc#Lc#9p*cH^^uq|dPF-st=`+!b&9MH>imj55^h?eh z0d{WnWMGCC9luJRp+UwN)Ncey5764uYH{n4eYh?n;DC0#dF)-$rEBhz zvgT8^%T(DKs(U$;cxVSbvkNj+d>)1MzWQCSVJP~K<}XMch57hSWUKp>Z^meqx0he% zsItTm){Of-hq?~8Mtjl5?w08_+09ENh(j#;hf8-REG_$ z4C6DZ!&a*Dsd&;X)EbO&u(bOmmv6gwtF|fan{d^>MRy^Iq}}PbPP=ovqY0Pxg>Fc- zuLi`G=cdE5X>V?~)VVyvB-f$OP;^CgR9&L$;&(Z>RC}R+x6hxo&->Wt+kAc(Uld1| z)Upm2;b;LUCcAa&qpj_WqTlsHbxHp3e5Fr{PA7W5s_(jvBk!*hr}}qN$CG+<;yFGr z&b#R7uA+V7RQeRjd!h4?`gHPe-Ur^6D({1iD|PL}b^K|hO&^Ir&9Q8ABMfbhaKARE z-zMobSVWyUmELqajEK9h%a1)%)X3$iw2EPB*FZniYObvKNcF-nCziwE2hi`)XZ48+X<=mAN!0yFSpgxAO08 zT^o~+jY)r4FJAPATX%i&;N=~*-O!`m)}Dn0&y5V}4;Mdvah)75?C!Di(py@g3 zyLv4y9rn~E-_{y$S;5jzn)IuI>L*QlNRz(NG#AUHr#1QNoJ{)04k+uiysqW=1B|-{ zFivYpxE$hh(hj}?mT@ww9q(v(5u5{~vQfS)OJJs*SU19`f~=chep7Q@_}jXL^IKt{ zd~V9%dpJk^uh9exO23X89c-P55Ejw0KX2)`T%dhqu{M@8vHkSD*P5a4c-Qe9R3bm1pghL4R439fZv1X!;=1b zSgv~$yc50;{sMjp{tx^Sybt~i{tEsA{s#UpydQQ^$CB%$p9 zj&$NRgn0&Dku9^~HZae?+Zmn?cZUn%zIONscoyg5;9__pEa^qQm#_(m7AyHxD@4y5}WaBZHTu1o-Za993TZoT<3Q#06_XB9q9LgLNQ|7p&|K z&dF~r*aCKgTCroFYV;s-RX6FUw`EPPeQujAb3VN2$L%5e|6`uk@636(apO~IRHix6 zC;PgTA^ZP%tM}}te?qf|Z}O%I|NN=w`B{U1NZj<$!tQk7A^ZQ$B?CL*1J_gP$A8_+ zko{lphubAi>c@Y)Y#N`M#`~smy=h!&8jlBSe4VWB%ipIy(DAiNjxmk9O>&HBJRYcg z^II5?uVm~JZTok=%im&8Zv-y~aGC3z>(&)j77pC-#O-akm=ou@alL`tmC(p>{C;h+vA=i_V zKl$=Wd1;>PnVIR6vWwC@p4lgm|G&pwY5y;mm!2a9gaMJm#Q#6z9O)0R@2J9S`;Ld- z@GH-Pu#M{Z|2p1q>^tFBJF5--+(b8`rt-!2^~diZiTsZ^xxCD+kAWqB$42Vdcov19 z{5GE7n=Pk%yo|YK|9ttnE@!sRJttwohoh2PFlG)Q z^`RT~6#Szkc37_$&imsqml#yI@km#<=ml3?y}4-c?RTW!Iqck~JI!l*9ItPT>04s@ zHkiIi!TM&HzG0?siRs&B`o;wMZ3x-_$N#IC%we!pSsr*0m7QTi*` zuPl?E&@@&HR6k}K3!1)FA^ZQ>I@jNgJ-m-RuW@@0=FdClj@%jNOCNoV{Qq-`GBc-T z_l#8k`Pw_-|7}YU4slbz+n>{BxZ))_w{M-T@ zI}4Gy!`*RwR1)Jy4H=v=bi|m!Lk5o`m!r8az$|nH-R*q=I*4G;@d>~M)Os77MR_*b zx&r4$306MAzWM_32bDY4aa-B`pqBM7mG)`Ap@WnUwBzsZl6eLypLn;}{B^n(DxLW8 zf2h)JQt2ifa=lznR)$G~4?^{k4ps%!h{wG0QzOT!`cDr24q zIpKIjmCc*tJb%Z7-0|ghbViP^wv`8LEBriBjqGdsz8iL=pbHig$%dC+~&Mrz!W}&s|g9OMX#8T3&`so{{$= zfjFrwf!YxtFSK zIF7KYZCJ+GQm!PIZ@GHA_o=coCz9X9pZrJr+*xm9Kk0UdOFtvuiBq0C<+IP%&0g|A z@(W#RdLjE{6 zXp;9#@}Wt73zmFnlJ`vVp-Fx)$%jknWZ4(dZ_j{0*nQX2KV8z5wPowH^gyFfX54o}9CUf>->Jz5Kfbo)2FNQx9H#Q+q$iczz-0`{AlO+Xylef8<5n zWOeIcoUHpelyg7pz;;koUUBUIVM@LZ+5Z>*ml?}3(ucR&)p6=IYe%+g`|hgu@|Q?I z5wib>?En9Xp1h^|?c;9rTtHjSB+H4{&6Pbp4~-wH=>(YUA)7 zFVuQ*=uM}!L^ps#RHUoJ*woL)f73Ioch5z`7EQlyuVo!=-?Jl~|1YM@Jd5q)Ii~cP zG&wsjtuQ;YXwuL;SE|;;pmBxmy;7%; zKP4w^s)|cicG_!M_f*Ff{f@KVp35rAQjyiQkJPnF*e^h*FR;sr z{zuB0o1c-X;xbR&PFqrOEz~$#*MSX`xN5S4*gwSowXI6 z{P9`P8{iRB>OBgcs`3w0Wf{bIW!y@ezQmP=zfawd+>3KP|2Su;{PdcAx=j9Y;#8cP zlzXCEnvXN@<4P{#>{E!Yu9_n*jw`ZqA+SBIrnhA~psVbj#LeD`C}_Ihc9 z_&2CFDE4A$Gg96pmu_3)-yrQkhgG&Ai7U@shdXV$8;mOl3W4xPD%9HW8!nJ6b56K$Ug-}lY&t1z_>$G;-3B7LII zv#q?o6Hm&fuaj7@9-H&LBoF_ia$m_{JTH7M{GQi{YM$2!SM|?}^!B@4`Me18dtM`4 z)jzKhF7xvm;i{}Jd0tNcxHnwa$~90Vm;n;$AJ?jO=}pnkD=%N(TZyTjmF`OpxtP;W z>U7$#N&Gk7RQY81^+6I}{GfDv?e8JJN?TO?92LK6KP>&Oj(@h!kMg)I{XR&3O*nr~ zr5~#L59tqe{C4VG_Fn1emj0?%MLY8Ce|`HvovyMEtnAyJXQcZ}>F<2w$~)!sKQ62C zIXQXvsuI7HbIH54dT*rt%u;<_oKHSg`$f6WGu3_6sph`4kIGf_RbJq%N0>~SY7W(3 z$vdCQk9PlX$aAgednljNcSu+P@vHVxmHkd-ALW&NK~j}AU)lHQ`joy!>O#l$tvB5t zN&V>la29@SmFqc{$w!@|JCMG*3m8rN?W^j?X}?9Pj^+NGZ=lm&b-WJh_p0qp+Nb_q z`!9{=e1ytZ+PAZ}ZDsqDZ?}#wYvabd<=cIcijS92Mf}QlU*gDjYoLmAmP#XSR_7tl z*15)^ZLR}pbR6A2Q#p6m{hUvR;*%upteQhTZ+U)k{OJ2Vkgx>8sydrVv#{XZ;ceQ`JO`7!u=s3=fAgM4pV?D?Md>Tk#=O5e@6=J$WvqnzuVZMEe@%91lfC&P zmH+GYpKE>7mCL?=d|v+&z3zy~56rX&;m2L2oR`*l{*LLL>J)tbNcy=?_ZsvFHpF-d zui42n;p5pEr^iiu`u+aT#M2p+s`{yI)f&~}?t)jZh@JFaeE)`zV{40%_+PCWaC!eV z^Iphq>#PIxu*zrB=vi;n-Y|Z^+?0*4UVrNcAJAvfxT~92@i!I!nx8M(-sP&hPI=<< zQ%XmkTW2kH-fj{<;hFQlEZ%T^*T-&&d-uC*o+TgC93PW^PZw3rq~|g-OKjZTDTu|GVojT++>pt!{kS3(tDU}9;P|YCfko`?z74EV_FBRvFdN9PVGPQ z%4d7r*ZQS>Puwst7n@n43h(>oq8sk$eZ~!AniQAM9n~X;F&ZDpNY}yzg?l1~%pLsV zuKdq3UYUqvNOGKn``e;EWq`rDMDMpx{=D7T<(K@>D*1souDZ~&O!^smUu zS4>I!tl@JP7u_&nbkpQvsbAxZ(p#11V5_TN`{@2gb-!p?>#q$99>eCO-issOTe_#R zU7ejhEn@ey5BoiKO|t6`*;mlFnf!i+s(vW}N9|UtTi&)HVb4{MZ9Vl-{DxKi`1{Y9 zY`P{tT9e)^&~rI<%Y4ue3`=5TTyZwzjl6rLSxOQmEUMZ|2toolh_vW(4N8EQS}}7vU%1SK+7OH{kW~-(Vh}^26EyOF83!)(>d?gp{)uVRWJD zpm{4lEV)iYLgYG9Ub)T%uv|y-;q!0He9D(ft%np&n4{}>op^G;ltrx{`4-%j^S9x1 z;lIOE;q7n{{60Jb{s%1iGZeAM_gb!za?+JqZGjx0*0j8J;D5s+?|cq7A&%^~EAwu} zpQ|+AvT_P}2Ecc1$+DG<;aJnC?Hv4g`1?qFxz^u7URN?t_zx8DDy~80r+O*pd>E_+ zzIz;%Ud{SLchPT^Q0HJP*aezg!*xLh*g~EquJI?_Ml@!HoXAg zubKbP8hgs_k(ey@d(m5myGt2xCs*SXAa!rD_g{^$;n=edG7gqwDIhCr0g(0o66$Mv ze~LChXW3JMeRS-49YE2^HzJLWe}U4;H^OSLR;AZ=Xc?b7bAe?)IcEE<>3AT7oj)_c_ zp^sB+`|Bb1ZyR78+rg3S8TM=M!I`V>YlGY=jh92#;XfUI53Y?3XQ%zl(sFocDHYo^ zs%KVpZ>|K=6rQ4Odoq_p{2K;G$oUV%e+t>FiL$G8Ab-cM;_S&L&%8O|VJdz%Y@FKn zppDA!I;$=-b1r2CB-ux?IXU)F@osdjW9PXq`E`h^o4v=P^V_YizhR|veiJ{3X!7^n z=S{8|MOa6bS1nbxww#}Z&p|j`Lc5Z-<=ehw-$GfB!Ff*74*d_^)}$>ZRkW?{y(FH5 z4XX@8Bc#LnRD_+|-3dFVGOU{u_K2zvwV$B6wB&cED!&R-VzjhZsbk;01SKq*Fb{Cn z!<7BolaRc3FBZ+mfk4CI;n zwi(A~K+3Aq>3#pCJWjiC;zSeT#PNNG&hP5EscSc>u){geNYeTrm3{|DtM2g|u=gpg ztb6C(^R0W?JI}Xnmx^M6qiX*VZ>n2b$KmQ$r)%K%&N+1#&9$63rn;^CeWIJ!x}yC{ zTK}W6ZjZG62imR!ty^cknMv|ub36%e79Ya6t+gG=&OCk<= zPo&#M&17{XPKk=|O_`d>V!>>vYx=(GGCT3RP~J$O@8eySM=ko&iSAnD>#RZJa7+7s z*`||6bnLJ17cd#rLK-P9V;MtXdcPnK|*JR6A1{`Ttk(T%`Hy{@xjD^>)8zm(O<}%qZHJ z$*y9uV+U$?HR-cWc3_ho)nqUItrzM#pTjLz?W0Ci|hu z9%8Z|n(QHg+7&-#1XZ1#&}82>*?&xSEtCI($sZw5JE6&LX|gk${54Ge0w2Xn{rLN* znEVJ#ehq=z2~Bo*lV5-`Wb&at;wchn#W_ZwFGKYIoh@pla0h=dpKUUlP>DH9Qpo3 zCYzSY-fprXnQS&DTbId}^INdl6flm``YEmF+R0e5K4A=5)v=b1E=2eB1T4b)Utt*= zJ_8SgpM!_N8{o^}=i$llMi|!^>s9y)_;q*z{096rEaPsiN7C}4Tvud`mOzddi6`QL z3DdvAj$!S}+%RqM2*!0R|qh5rht!<*o#@T+h(ybVT{@xBjJzusN&bodLH zZcW|KEciRli{T&spS^Pd?6La)`1$Vc68pNf&?1!Fau12QHX0k|n%ZU?mf6-ecj}?J zrd$g}D3wa3s7M!uQmOn)q4c9tq?Agfetz|Tea`cJwlzES&E`_yhqL$hoaa2}_MGQ= z&gXi-G2mtNWh_`5l=id$88fRLDD4#;_!%I3O6q+_MJIR;arThZ`;JZo=M$d_-UZG8 zp-HSeJ?9sJ_Yq$Pik`&t;4+YVqxB+of@_Ei&ulH|+$Wn~Ve?1|-Y4$0zE3g^PJWxl zF8sbe=E*O57?NMc+NMKoT2{(0OIi*=4%~@q{f7XsGx1=Md!|A_?h)S&TfYNhUeCJ= zK<(nhAaZGDp;xpwO!aLFc~N z^qNxAkAnC4bJ|a`+AqjhIDURwJW3ijLi9yWwfAUo?>j2GAO-b6!j=`T1Cle{*8eC> z_al}*WfK+>))ICRjuXO|ye$Z^1mEEs0pAGtM!+`$z7hDRjex9c&XE0oW^zK(Y1{u7 zmF$0-J8$p5YX0_JWj&~6gRDPQd?nTcZA3m|#Yw{@hl!VM=c~zi+i(6Zecdle5AuBZ zi!X8PI!6rF<#=pZb-wEQy1vx;fsX&Euj}WjPu6!Xm6(?8x$Z*nJ)Q4}zHTVj+4YC( z>*6_|Cl9lI`Bxxqd|TuDy>vWoJLn}6}c0A9<70*7MMrUNkAr%ze7wp3Iyv#o?-3u9)fo*1QPv{AMt%(fC#i#h zH@Pm;=Ur-;KL1|uh3Yex%WtpiGye^)2Lc1t8-Yt)!-9M0ar4-)%kX)|7#)2*?#*LiJQXnP+AXO6dX%e!{7 zZdbQpKTr96xu%|;LnZY4(;mB<^?ecPlBDSFHct0pF@S*=(V?KJQW&>vCTT2v8%{o$Nka%2h)Rbd^UqWdBrbC7$8@~Bp8MA^rZ4IEq`)iH zeSUlWMyd(^%Um@AyX*GK3s28!DO%-rMYm-&DP?t=8-ZHtQRu^m`~PWvngNm$`Ad{ch29L=q3seP~S|a_7^iZsMeeL)sAmR`rZw zW%AhL%=arUJ2N3ARX?DTSLUdczr3T&*-B`dmE!u`{Mk$aok#A;D4l01et#s7+$Wc+ zsoNFC9>@dS70Kg#+Z~)i;m-G6_V~G-AbXlP`~3(?yl1{Nxz@Sf(Z`VQav?_qL&|*( zbXV4MTGdR>%uLVZ&67PMQ`on(-R)imO8=ejynMgqJ#2sH^WOQASLTP@gZ$t6hQx2y zX?f3ulp*uXE;n!fO1hMhq4Vd>JxPxsO`iQ|S5m%v)zV!_-zRv+dwARU%yYh{C+?j8*dDvw>%Z{CbI)HZbA$I9 z*UK8`D8IM!-S+88M2=hp)45|K;Wt0Fb9O+^#Xm)cZ|O2-e!bZGX8UoIyv^hOGkBDt!77wx5J^O&_9u zggh4~%Ap4}m-LKhN>ymSsmkigJ+ExLuIwMf&H7~C`U^c@^e0Su62+|#Ve%JIWHzSy zzMtry!K6Q7(ho4{Pnh%%O#XI?+a}edKVi~uFzHqN6Z9SyvbM2#WLoB{?e0TK6B(%- zeD1B9U@wr*rrv)=)~3CQTVNk>1xT8;3KV^T^`PhrYz1!s-vmW(-~&+f29VvVcyKSs z0^a%(910!+V?p6DivEBjk3HEwFG=Jp;VDP*?+bMJ1~$)SD`iQ0c91Ry>ssp)5Sg&n zi?BeJGio9z>)RZ#2RIoV3{C;(fm6Y!LByrjTJUyoGdLT31Dp#Yv(|bC(w`TIe+#|@ zeh+Q|e+C&N>v!-85E;H=?QDqxK4n|T?8@vp>0+c;s>ws5+4Zv>T zm0*AHD)2^7^acilqAxHEyc!$@wgxTm8ZZZp0H=fPz?onNa1IC!ZM_JhD`IT|;V)X- zzy$Df5Zw{$FgO@I0uBLH0Q&%eeqbsnj!M(P^5D&2MKBAz9Lxsmfg`}qAbbTY3Y7lz z0W0_^s~^a{vr@puU0tza|o zT~PYB8hTg*ag<$f_lHVW8seG}R^l#= zcUCBWS+}yLl;cW*j8h##S|!#QnZi4@Z59V>$%*iA;ji-z!%whg*$WT8E7#k3ujIV= z0?xD7b9msjDYK9xLaG+tbwkkOZ&#O_-==b*tVuao_ad{>>tvM$VYAEAKF@$VqF1|( z{A?>h$)vezD_~i>icu zg8qCXN&ld3Sk0$CAL`e z>*HFPZ4ynqUX!ijzs)9bVT6q5i9S9}wu+|x8BI2c#m!SU@gPk$fF|Cy$yU*1yJxat zH1Uj0K5mQ3=Fw!^SX4HQ#ciwTwN2txGH*|R-$oP9)mxtW4Nasykv%giUYWSR#q`-- z*I)lrU|+M3)sp(TJJIGbMyH?1^EUB%O@1Lwvd!YQZ8XVhOuTs$58lM%H}Ue%7SGly&Pvpp>(cV6W%wb)%Fc zYrw?>Ifjx?){?2{`T&^A`E7p#fIE&fB=YaX-MR!t&)FL*Nu zD*ze;UMe^O6!Lx~2)|eJJT`z+h`$O_hW5cb3;c$-*c#>Mfy8oge!sLiW9Y|S$hB$M zU-3z6;(M&66Zv@`f5jKAiT{zG_i-}5hwwba_iQSCnnn^8YhP|7VXbBKlwU>YD|Hj@(9kVXOV^_4jf`y#)^hZMZl1 zwIgi@Y+W?Ny!WDM-RbQ*&$OQNcHL(BZiUb{dEW`&*73VDn;cF!L;`F z$^ZMd9>+(~Tc6aXwWw*0VOkUZQ{?}#+Ggh5mH!VOW9wsH$TKhUd_S-%L5?KWLa@QK z9)Yak_ObBG(E7+e`9CsNpZp(Yv`_vIZNoV1V?pDS|NG?s{{;E}G-TmX5A(u@fR2QK z4v1$RAhLhL4&?tUIo}%kH;S;C5Xw3+2|73wqI@0aUI4cdW|F>ZA!)LXMD{XG;D* zDl;Y9BmGzS}s`pUQsPNBRgey%Gi{&A=Nsh z56?(R#gw%;<^OZxD>U%P|3$}Bj!y{{3GWhWS3;las0&%Q6{kBynqym6P_Az03+KFT zqd8Jv_pHkA7a+X6$m4C>RLLiHk@j`A-D@A>S^BzH^mY9_^}$EwxiUM} zmJ_D0izk0UzW`yReWkCd0liU4UnhP6E=Tdu#VAXA!gAxGjLQJG@P-{bKC$&rAUL*w zr)ldC2Tx`}pgW(fKiob$&86F|gNyJ3h)|a`TsF>}?<9GDc?K+Ic?6*W2`9&8Y5;{`R;OwDp&9`Mb9M&ORB7%jjWH z-v=`f`1v|0&qQl|e>~%ot8rp}HthWEnRT|$j9c{ekKxrj7@0?UU18PFwEsv}J_V)o#%*OY4wS=+ZR0;qymEz(?@8(AJRsqjXH_~uuGKu#`6O1ZT~{XGjV7_racOED7ON&Owr|b3J&2u)#E;8`T3~@{*mg7z$5BE zc!y}p{gO6_4YxgaW_s>dqW_cr4gKB@%1~Lse%zln?oZ^Ut}?Qd_$&R2q}|>0y%24! z6K$|B#RgmQ+T||wlsixLcTIB*@UN>b4lb*&+pRUAh7U^j_??jPOyxQ$^JY-SDnq)) zFR54FsZZ#71NB@hM?6X2vosZ;0IGcotZ0+ zzLz#z=X!gNJ+9}Wf8aoMe}J@qIQQ~mJ?}2ib=dRw&+{psI;1?0?R=ut={)-n>b_qV zG{A3_e`t{S!IyUeJ{)wJRrPgtnS(m?jvlu~sx$w>3%y@K zF6o;*x4J!)$9PC{biGUgwN=+!L)Rlu&Uzhh$xOade?#p)*uEjUaly0t{B)f^f4fUE zuM6`Ruu$j!K+jY07hvB@c@E?q*WZ7Z{{@V{{ce#q-pu<|-UqTuxQsqEpshx;a(l@$QZTK<7(HP=c7W#X`#+DztC~=uAjAB+XCZV&bv2LkI#tg!7bwS zLQ0;~6UQi#_e+pp{(coUKGXgy<8zr|eC#s*%J}5ya_Z!cPqvP?VSKJCbbLft^k$u> z3)i%9XE}Xp)LeH;o?(k|&-43W`(xor9+{k(ohJa%E2FbkCd+zY!DkJCHXR=On(^ z6CdM=uh8#mcs`!^XP)@2o_KqEZJ?aE{m!-hLP&Y`yvd8#(9f{S%^#}gT3-AsPu!`m zv7SqL=dbm|9X}LP3!Gn^@4TY}+z{bM{Rolqo@lpi(gpHX=hh^H?OI>zJ@9he@3qn+ z!ul-=+Z$AU-dt?3u9Wl>_qF!z19G6#$@Eyf)wwn4);8)O%*uLf zT1GfLNN;s+O**~j+WsIH=>Fb4=Z|p*Hr8wYVCTr9o+_5EY2*KDyeAuYP||Gt88<*m-`4qeWNbAS6} z@ty-qJ8gVjRV>vEd4SLF#RUhuy=>OSHR;fr^f632v?hIwqSA*+()YL1^zqeie|5*4 zgje^w{N5gr!rG;&%%7j9e|xysp$nfH|HhAfuKK*k7s!G1_qPyT;@XmbV%Tr9I&VFJQDtIAU5u@({%*d$wq4iO@$=sO?3S_jbf5OiH%b+^-wTs|i%Ez1eAjO==}rB> zdT}`;_S%955tkmDLed*NU^km;aMqtp8k@Tswc57Y@92}XjGz%Jk%uq!wZ zybin%i~=75yMd2@J;BvrZ*VOr0dfjdA%sMe?8bg(o8$V|`;-U(g{&IRK^#=ye2fQFN42=Z-S6b)($WPtiYI+051W>UcClL->iC|__JsYe#~`k!98FP z@Dot{RaE5saPUGf0}Ka8fYrgV;HBVfuqHScl=AKcWqekFTfmpVx4?}cV{YvP#ZG=N zSQh*gJWl#A;6CDifcwD`0k+?Sa^P3QF9yYbg7E3T0j~lZf!)ETU<}wC><_jA2ZC3F zSzv2$0vG{K10gc4Szvo`9@r7Q59|y+33dm60%O2m!5*M&G%4lP1G$&lKSY198S#N& z8!!&+4Ki1(I4}vk2}}mFK<17$1{?}b18)KsgPGuGU^e(AI0F0~l=8&SgVYxe&IB8Q zcY@;Afw^XN0Ox^G;C!$rcsF<>xDd<)#b3s=;Dg{xAam1#ovK~{VG?UU7^Oh*k5L|! z`l^E4z($^Ub8si|-XL?<>JRP#?5z(3$&&k5xjhI2nGEmtfX%d=u0?06Jp6LHU#TP-%j|3;5&RH@K;A5fQ*^S z<(B+|TMZnPl9rH}lAJZLOImhv=J4dCl!WZ$fg=;M)6-M41}0`^#|=tN8rZ8-ROh(n zP2&=VCpB*>sRJ`IlLw7R;gtQ?J~5mveFxn%FfAcFWn^;Vz)|TL$!WIr|LMv9WeVL?uMUyzdcx-qad(2B6&n-RpcI&#mQnu6pCisgq?(W)O#F9HN3Lo z;wYZs>Wq?t=J8IaJp2J9Wb^J4-m36;?Yx)hINudjrKw!I1s>Fc)9xBS;-AymqfJyz0r-qY9cjq#LGnel4lo<_S}Dm9~5a^eUC ze`DHZXJ@7i8i9*%yUs4;FR!nELtoD~&vX5S1=?zNTG}dd?`ZPL`p#~zOUs^S6EDy| zU0eQZ8Wy-_A@M)=ZE$MBkgVJ~S`^5?jJWW|r_e8CdV|wCRk4x zbM_dAlO933j7PNV#PJZma9ura@b}3h@vA-Yg`W65p19l(IsdjNelPL-J}i!3Kt&v~ z9;oHP9_0B(=SQC)OWqoJ3I$qr!J38V%Gqj~d12q*NCv+CRq{O9GDLaa>~e0@_i#Jq zi=4^hr$cWhEwW;n>s4|7dIjZ6xvK{Hv*@fhE*1q;fKML@&oKt08mQ_5r_2 zU-KCR<*LnUR^&;M5FN^uEHUSOW49^q zd60XTMw`o>G$PK<|LlP3VB=F`VtwOmG_T4 zXLg*NA{}^gog-o%*XNdGFeLScorunXJy3 zHfb$wk3}n>fu1Karc-sAA9>pAeN6JoS>XEfSmb~H?KXAM&&;6!w`!q=sKHvMFZXkr zZmaBw(O&PXl2_(yq~-6c{jQQe^14%@`nu3;;ZfMS=v%a}q1>G>+p1Gi00xmx-z&t!Y|LE;T`StHPLaOQ{Y>wg53 zR;~#n&&#dk8qw3S<(W=D!qg@-Mx1`6WF;k!)Olnv^t&FDblxOw3(TdwZ?lw_N~5;v zIljSffh$1Y=i#KisoV89+9?%O82$gv)d)X!?e#oM%{R|3#0y>*zdzXHVJi9-wl0M| z4vqD=M9`MJaj8X`GcNM1*|SSz`Ouu|8eQjLv|EDNleCIj#e3{I|I%t!zyepDpv(31 zCwezd|MSbucq&*=-N1C=6@GvlaJ?8 zYcVOb9G_w1$(^SRnG+m=<%@Y$&=^GeUWE8 zT-VjfRaN~^$n#ytGwwtD^5zb8rfL-^eIG^V%juU})$`eRw*7v(t@CB+d_q@A%1~U2Tq%Y-Ue!2Xzd~uPvFZTpT2Jhhgq>KDst{qI6PI!PI zX-<$dIVa^fX@V;VQm&LWlpyP)*|epQBZ6DQeG7Cypx;@cqT|@CxhKtjkFn>&=oEch zW&N_9a~>a9fBNRj8f#bHIsHACw0)%IUw28Gyep)@XqWxXm9@{2+_b!Js^mSEn{IzA zB`;IebAA4AVt#qQ{auplW4ZojU6-v_Bx^XCBk~Q2b`|~&k?Z99XSdOw`?7A@qu)b$ z^7mt&cnivs^ELHzn0NjvPrQ!j{O@``^89+@E%lh&`5pN>o0=$-+{h&7Hpy{KcB&?y zEGrsnc|+ANB1hj;?XLSC`*FhkVb}da-x^8!j-i8sn$*}fcJFn+?K-&+DU(mAVGX1l zbO66<`{mJ^_sqpY!z-FMeHW#q2kR#eTFZ?V_ICucnfIqP)c9Tf`)X^HyGB zl7pJ`9v*_(AL_bg<$FIah=1yeGI_}mcu$~`yN4bC|9cw&?1TXcLJ zJ{c5nsOwPU|5mO4-v*r??e^q_r9P?iB{Bs)Zb2%rXO;Uh-ki{M;O=&9%dWw`NZ-fr zA8UV8+tuS=O{p2!wD?ejhnhH`C5Z&Yp4gxj`e zby{#w{JmY9RNRLTJDq>>AJ^}yf9sM9o;h^E>>f>m*P8uenD%!!$@NY88Ncd!2L=A8 z=A4gIl=Iu0w|~)L^y1r+AASFs8Jov3ZkM!|^d0vmJ^V)fpJMOc zdDonPpC3d((N~Xux24TKd1G(z`}fRRIk0w*davDYbLV5b(`Slo z%OwAPTerX8;CXX1zj&}(^U+<#E!*=`ch<6c{(swc)XG*5?r8j4#QbhKbEf=`yi=z? z(PvHAdk7aFJ@nf zp{>f59d~c{;lB+t@6TeAcbeq)ru`sHdH^Q>EG9hwZ{_GFdA~_N#^etoOy93ZUwv@) zdo%vGrs7YP-(Nhq!%t?t8Iv!I%QJ?7z15?-$l8y$K$ces2#M(stx6FEx9h`fEp? zxub)~u%dK&>vyN!aZk%j?ue~0dYSEC#^nDZCPMmkqWs&We`C^vG3f^!)6dI_!3hV- zzT7|Sj()u=#&nJU0ojV4=L!*xf3%-3G*;Gs2p5x)Sz4hsXbRHN7KD;KHGfVbLFZGQ!l^RgEgHV&pIi?N*^4yx6RX&9e*Mw`F9un z{)rr^%7m|~diSKruWx;N`$bP6ThZfiqL07&I{ifbJd@o0W8MAY4+DQ4D8=;`Ifd9R#?CN#zbUox?f9LCHFh@PH5LAZ$JF>;@2z6eQY85 zdxSr5<5M4%t-gLvuj>-u7{dFfq;AiNKG95i6(+p_lU|@nkH@5sX!1j3(&sSwHXXxU z4|SEkd-a9^>l;7c_m*zkd(WJH0~}914tE}&-@8QO`@dIsd)j|&J(b6G{<2FVTi#Rg z>U~2Wxwij;?yEYP^;dpYluwXD=#zsX?5E&|?|9pG^S~n+{}QCd6683*XZ;fJ zEBo`V_g9D{&g(_X;VIkdL;N?8CaXZ0<`00O;7+g{DD~`uKC*dCHeXQcSxEXe5C8pQ z@(Hi7I>>aJD%LxC&ehJ`Sz`SA&m$PlK<3>%rH-4dDNQ zFM$66Uj_Gro4`Y$$cvAFZ-Bpm?|}aU-v#}dOWVN`AZ1vh%drcr3hoALfFFVE4WK>- z*$Y6+m9GJ1|Acnnci?#N2XH<}nbtdCDewp=`xpEVl>G|=m^-q6K?(3uQ1pU(A1jkMYzAv2NZYK5pzKc| z`VO)m!Rw&xMpo{ZMK*rvB2rLOc0hR*SfMvm# zz))}tSPpz2ED!DixmVU+@FMVMFdY01M0dqH4z8h|3djPU2d@A(fLDVrfe~N?`K|@q zf!)9;a5%_4*85sWd?N9_;Dca4a2trOi?s`k1AheBqs1x{3~vJr1JQZ0x`7kG0pKm* z2=G>LJjfidCW6zzd%-)v`$3*nt2NI->T2%!&^-Ny+3BQZaz6+;oLfj(O>p*k$iK&f z_&MCgxfLt(bQ}&6m%Sb;JOz&dJeiI|L-G`+;}Aa)*(c}Lg7IL$1GMorUetuY;tR1b zJ%_clF>Kk1x(<$>gXlPHCXb`%P;UnJh_INjjv#stj*r9)=^Md!6zvG`n4c;6e@a?P zHs(r2;s3w1JENk0KPo@$H&Il87Z&0cd#3mdF~mKaJTZkR1;_}R6*jN#ZG9cz<4U#+)Y)esfNzx? z)d*5g6@t{03zBH}Bz4Z%dS~r{M9Mihl#HTRv^-Sw~ zZ~1!O^6yOakBNVJYX?~;PtCY}(L0aV{BFe9gN=7Zgf2#xu$82*nepc3In|!q^230b z$15&gwTwBY(poXkGQ&Jo1YgAs?4`r zr+@QMnJrO4{xO%iyN+IEjrl++6CGmWtD5*bCO)Hy4{PFcnfQ+;zNd*#XX3}1_--aX zxQU>EDFMZ|71-M>EJ1SueE)Wo>p1=v-&7o$NJL!Rz1&SuC%#eTuBL;0xn%ZlcqOS0`R$ce*{$Yus z*#j{M*4yJ{vwBOuS_i&%wmYHStJIJZBT{^nB-$?qXddbgj_2Vn6&> z_fZqO>B8vS{PxlgeJk?Arj!0GI}FW1mPgo5*iXoBADuJ#&$iKG7oDHR6y^h7e@H$BYn!Ak8L0#AqMavkTk5%v?DeID}f z@gVyiGs<6Ev#QDi)p5+jpUuQpvgS0Vf8GJAJRr&XWs6bxX55hwJe~dhv zLD?4~6`B7`!XCmgg2g*Z_J!C1uAogD3BIFfM}XJG8KnR5A?slPoU8u-A9ahIKa{`B zV~z?$T({fgw{1YL*X6g#wFi5Q))Xf97kf&P`^V_~SK}u-7+b?&E&oT1U)T{rcFMBt zyQQu8M%8T#VyY_@g%&J^PB7+ zO*{sZUO-HQygyI012XaUii(G4;%yW+56@d(ows@uMa9E2$vR9twxZ(g{lI#uAHiPZ zq1(^z)hx0?z$k(otQ##^KZ>3K%O}Zi$vSHQSQ~^TV`0{*62WMY1(_vl%@lAC=;$K| z-{xfc2!;8)D~xaB=zqsswoXD}Je%UyPY|DV`_WJE$^XUUmc1sId6Z3H?<(#4!YBXt z+5el?{ig4qNoH;O{+&VkKQ%oeDRJ`qM{RuYTa+*d!B3jO%wmo z#Ah_|4bK<;;6}dZBIB;P24AlPp_$e#L}rFu%kdvxm@aqZSme{=Y<=#WyP@%KL9d)3 ze!&aUOO6ir>BzNnrl08BI|7|G1`Vk#;dsa=eXvyZ&&xi0d>{IW%7|9D5P=iGa8$rfcs|9$d*pZuR!@i}pvLHa*oP& z`oDok*1ry(tsK1xGA4pzgTD|bIW9F#x1A&{yMIuaxGF1UNWvgCL`X;!o}KuA760SQ zb$;0g+V*w5TE|K<3O+x81?nzM9d4r?86 zX=D@4TU4~|wfJkmhuXm|U;52z@J+ded)BraI(M5=CSQ|tbiauUSZlezC;9|5+0uGT^O|@UCZ2;yhHBzD znDpdLJZclIZQ>!AbdOBDg>#K&KVNi@OfuK=g@<60sTa485pQ*mOgcs;S-?M4mq=vo z@dSHKX0OqPvgQ)my2#7rz$D0$^;;w;>0Q7w;B{aa*b}S{iY#7a?)|{#pvdC8f=S>D zpzw{v_CW^l8b`=FHZaa=b*)pGA0?& z)h1mEZ+(gt)%V`?T{o=*&Uc*v(>mT;U4dsbef!}zk0y+XZT|U_cZHR`rc~X>e0Kih zH&wX$*~;(*t`>Uoj|UTX`XB9G>W{frr$=8O*UG&2g-?gT-pj(IBW$AoO?&K^eA}D& zEGGKAsQ4@Gmw#8gZKGKS)1L>J@(g)G^Z{rqv-=&ge ztBzdWft|m;C+<>p=LruYQ2Xzb{AgPwXOB!sm0w~bKoeAm&J(J2`o)gG%@xjdWw06W zBTp4F%3dy~vJ(*BenO8+UC}PPZ4Mv8r_-?ay5Dw1j$DM3osNx!c6e;(?0}q$e~Jv> z(q+v2da?D{OShh+pZWdJOgatzouoZa2ewm94$u94%COfL-}i8LWGdeJMex>^!el#Q zvavAPlz8iB%v(QfCR-De{{s_kW#TQIYqlNU>KvGO4&L$$O}YpsK4MYnB6!Q&G1;J) zcm>}2IWX}My!C(JHP1)yb?{=1s*{(zcz9pKh-140qiW3L8`47F55E0cz12zb)=!DI zJREOz7tVKE3KP%7q1o+qk-feW|9JUz_W2ZBvgT?EmIFmjAiDY@C#VcE#jR?f$Pq3B z+k>@1%-k$lr*#0=fh`_Ys@ik54u#_@uP|Q^j^6&6(%CpOfS;2Qzo2%L=( zID_>6kmT%}Q_~YqU;ba5`u{IOV;|*4$o_w(wX=yfGSNUqMbnsc1x&O~T}?Z>E^E+Z z_~i{7{`lFtdq%0_YtKD<^`ct4nP?-E?>Uo>g^5Nq(LhB->zHU46AfgdSyww-WW2uOZoTS*im{}d?Vl+0pAFmVg$}4{hykZosc~u zOEUn@1^NGGzHdV7*M`}h?KjD{EbiT*AL9;etk?X(*hkB6 zcu%cY%ETiv@feC*9(KOdG$tN{iI-sF8JK7t6Ys=C1DSXUCLVydG?R(fV&bWsEgH*2 z>lYR6W#UzM%abti9!xw26HnU2V=(cmz2!X=6>ryaZ&tBh5IR`sU$MnMm2bGS zy_Z1tvuDPZ!o=Hgytf9(^)v*XeS-83*QAvB1Muwuc=mPUi)!sWUh@WePgGZ@)@T-6f9t`GHwHg6#kU9G^fmp1 zQ!Q*m5CVm|exCmA;a-O>d}{m~KlZum^B!N|UaGdFPYnBQR_Aq}Zygy~J*rI1sEfVV z7cuc3OgskDeh4PsLs9ujC~lsgi3db-_+83*p6t{@fIv&wxLZ%$}BaCf`5W$`J#nzfA3=YK^9{A|e%q z-=||cf3m#91K z7ZugMU5D%9I(6^UrDrtSd}8+>;=UC_x0v3NKMskk!q;Gw`)zm;Z9F~=v(dSegZ*nb zr)}NT#!5;Zd{ys97#EkBkdl>*TY|(9nJL+01}CJXj>t?_>@nEJ-Hp0kDtAC~J0rdY zx}eYZy)NTw?W3S8al6bC>}@!}E%V_W+VL(ya63VK4pbw(kRyW2IdA(Mkb0wCh1J{A zZP%&PCi)=$2pr#yA^vu${|AUo;5Ncjl+$#R^fQEh>M0X9BrCUzx;-uI%L@M0?Ws(A zA~;in5bf%fosc-JgJwJt7hjFlz%8^R+GX>ji0U>S1w+vVDJq%kzfFc}(myY%b!}1c zhaS@Wp~@5Ib-R3U_MGn5{*+TX`Vtn$KAEeJKlI9|PQONN`Fs02c&iiU;}4~5U&f2S z`Bg&4*GU;x`rxp=ZJwSSx?DOg%u%mSlfv3;zYG57^NYmwFZw z?6r?lvL=#xLP1=8=wl-JrJlRM3&90oIQSlj+g!B+Yz}?^Qn&gLj0Jas@!&_`P2k6% zEME73w}6<9Sa*Z_!N)+v0oFzkyAMm&WZ#1<$dtpc8u&a3gk^-y1c%=iMZ>m@QmXW5 z*31OQ|H47Z$GMy_)Ctxc3lE9l_+k(nk-~U!YiX2qE9Han7Gpt&8!`xypko)}*o0W5 zZO4$)3E`l1PvWgiRZOl&ucryb?F}4>Do>`=}S@3 z;vc&6Xz>?3wD>B@zktANM%Av!du6xKs8(Dq6&{z8mXhsJav)DRXmM#Hy9p*|4o=L@ zO4ZHDwRiz3Y{LwyLOb$6Q=3(NS8~^((w>ohI~u%m+`u;Cu>Yr zcFOQ%&PhE&BfIrA^E6*T*W;J3xt=PW`bz7(;ishcg@%rxZ0TFHE3a>oF71+f^3&Fm zE^U!EM!WL2v8B7Fu2ZSqoGYVRx*L1qfu4Aq0`cyi_#VzXehnM)K`bho{e~v87LDwg zQSr*e{Vk@??z;Z^p91@OZ$s*>K6INlQt$9ThSuI19{tg_izbi#?ULS+=;SbS{SO{@yY-zH?LkQM=#qyZl1F^RMdk;jRxp z8~k&Jy^~TV#dQAV+tTpBu9f^(lxcrpO7O}bCmsK;!^+5+-zn8qr$06O(|3Mdu=n_& z>ec6zxUTJXrS8<}|NAg!*tEv(WiJE_S&;Pg#hY0t>GV1k-fmvzr8UpBc_ggSv%$B& zqm+raP>FjG>Z-Emnk|cmAH2W(jNs7?YdsIo@t01L-obq+c-*wc{ohUh&y3-{pQh}q zb^FJ?IH}&nk9Bx+LZ_ueuJ^l$MU=Pt-ve~LGah+&aqkfky(?E~KI7GL@gsaZ3ZD+k z|FV2M3iZqP4IaMm!Fk`@JZ96JoDOxB`nTz@OxEv*x$mW3x2VS6GV8zny2FCo7yabD zKS*zNTi($14!wB5Rf{Jdy{&H0%syj}ZmFl#VVxe7c-L2V)&J(D24(Nv*|hdA!=Qg# z%6szH3gm`UN`lPA)7NA|30eryG^EIzeic2t|$7e z348D1OH;>099?{4sqsspPj&jojiz4l^7_r)_PiRnsmrX&RiR^bITLsOpqmrT(5Zykn~m*@k!u75c1pN8qK5NldhH!pAD`AW$g@q!QxY#%S&*02L*Ws z4PT%v3U~Mgr{Wa|pCI0{`2z)c1BLMgPQ?@0HOat4@VO@Mb$5|9Mfv}}(DRFDKRpujMnb!{ zYJHGW{IrzG_TO9ETa&MVs5;WG*6&WcGt-^~LWk?Pc=aakgkIA1!6u8?0iz;LtGnWuAr6E;)De&PL$cnvhCJLKa%obc;!r zDKyJ`WSW1KhW6cG`~C{898Z|0^(Kp7{=dUh&$%f7@3#g%zP3K>8-lU=Jx@A_=%1Do`^ zP4@aGI?!aVZ}Menq7S{bv-g&sH0d*&WN_Zf_)L1yCfT2fZt<2sWs(V+{9Bl0g(klj z=erEi#0Nar_~s@ZDwA)@^If+}^t87loBW0l@*=C%XKi1Fj^9EPk7Czqu7M`Y@4r94 z@BY8yx4$O!iGKE4LQ{TsBou`#w)JAA`camNx8dk%JO2Ak?;g{;!St+~p6T=b*%h7! z`JcA_WZ+?Eksdxp#ClDTi@COR=1`6W~oQfw920y^W7Z6_& zqiLV-@QuLvJOXE!{vVp0dT!JIpFsaRw&^SQj>-WmKp(;Kw-S89gSOtkC^Tfm4Nu8R zjLX3Ieq>5!HahHW-2Opgf1jK-A~ltGJGa=_+t-9>-FmyU6aGd>b>+~Nm-?iPXqR1v zqvw8*6GbIs@^;N`qB%@!b8l$~Z)t)=P3w19^L+Y}w`!(mmAbP^a@r%E&H8|*@4iV! zZ{oESHw|Ihd(E^CG0_&LJq*wHb&H9IVe%FDZ=*#_Jj*hTgg3ck=%An`HMWgC`@TNC z<&l_pA>Q&fOuSofd9?pFo~wzsWa7n|_U zR(*X?sVdDReb1JD|M_cn6~)b?HTmv5TlNiSi|6_?YoJii5=r(Utc`BE>_aGYYeRy) zp0d|wAuOEyNvr9}kBHimpKC!`vpoZD105ZW)$kEaJdlF?581b{Fuq4Yy$#`anD`vq zs4u@gdJeMazhjH;=x-dPJVfJX#s1%+*?sbVnPI-eHv;GP2%KU1e|UPD7XL$Iw|0wC z)pjUeti*Z<}U#W=x zTzX<=^5Deu5xC(iD!c!^d~2F}eDEC=f}EoySjK~2K>tTX`a$1g_dhr@IXNyhF+FW$ z934|7q5U(;3+->y{o-q{ht7K}mk(fH>-NN5s!JCs%f)yMaEq-~PwMwJoXS668IN7Q zv@P0|nrk<|41R)%UNEhbP4u$2>t~;i!yO%lvuH8t@SE1vGd161KNxyC2V&j;AY+DP^eJj^;t_y9up+v_QNjV9;9Nk2}IqYR5Q!Lp#N-y}{EsvIc! z%7Zn)ilFcmDuJ+rR2bMEya>D&tOCY@Rl)vXI5-%*1jNOGst$@Q{ZeoOSQA8jT-5?+ zftQ1*FR0q!a95B|8rA)hi?Rm zaRkmV{hu~s__9U>_JUmc z|2Yr+Um5y8kU9#Z{r@g~FE$J&-RR<``_C4AZ=##mYPxw?pA9!vSh-=<=!zdSP5;^5 z>fEE7z11%;=^~qK3{3h0#Vyx5-|2F1Z3!0E6}jS@6M}{WEnj%3|Dx47kFI{FAO4rG zlJpmARGqx!#l!m=MjYE67*%7Y_j)}h|B@!U+@$OLPqj(dqo4Ojwmq@1RL8+{KMDU| z$K@AqVtwo_y>8Nz@|KP_*?O7ulDxIWx~-nftCES2?WhpF^pz(U^tyl9{?5D2K2A*f z&hxL3aw2-A-V-?W>FnwsjNMtj{6&qGGU*=`l}*?Au9xI3|DbDq8Rr8p$NgR_JtC~% zqOiR|)#uIi-p{PbwxPIf7>dfrk4e9vAl)yter?uALibN2*y|{JO(y4rz8_DJgK2LG zLOWZsZj-pkRz3kQ0{;UF{l5?7HLX4ch5r8>yawD43jO~jh~Iv702KQFD=-0s7T5Iu z*Wf>a?p_St?K^xU;2VK|-w2#x`d_@$pVRjL`}5KN^^niX@f#@L7r}$j|LY3S|8X9l z`{M6^q%HqXbkaosU-SUp(AOOFckBV|GV=5Qp6X`n0Ss~taQCII!uSBbw4xc8Q}I)r zeGKGYqA!tqFC9A!pWZ~X^vAX&m0U6vS%;<zIZIMM#cF}KG|ocJ52ON zQPB}5{*US^>+Nr&pP$;geL#;p?w>NdV)O-znaV9###Q*e`pHozP z8xw!#pUQ_Z@lU+v!+6VYG4WNr<*%CfBqqMAiBDqUyZ+nw9wxqMQSn1ed{Gmh#KadZ zZvKghUsqIo72%T{!Ct~%XWDC5(T}*E^!=pEA^Z(N;cv+LR^p-`A^eTXpzt?pfZu?y z7e((v>qmSGwjqu#g4T~X0t%mmIxSe->PJxcBuBxUz@NY@5T1@DJeprXOd!-T@J{eI z5Z8U`zu+%?hybFf_@-%DSwc23Y`e6G#Ch?%b|in zbTUL=#6q`1l>l3V==EBWU@0&bQ1nRlgQ7oj1iTnL4vHR02=_wtNGgEUz-plAlhgx6pQHsy+pUhE z=##{Nmw^L8(JL7W)&^z2@GC$I6#bH!U_EdlDEcKUK+!K*4PFV#o@R`NwG|XSlO14V za33i8Cf|Tf!DC=EFaX*|^iD!S(L1RMwghW~t-z+>)nEk3*jiEGHDEum4VVPB1v9`1 za6H%!oCdZB=Yt)yT_WY^hVa)gnk5Bn>v2^#uFF+b$?~8D*pJ65(=|Puf4c<_7f1_ zdnUhoqPy+*-1|GvfN9NiD*696+OG24kpBn7;|mUYL;Tp~*I&=?yYARH<}CN^1;Rdv z+QNL@=l5TClyyi^_^_M#;>ms3?O@(*r|rJOHv+y9`1g&#nWX>I6BAM~*gvP`{|BM} z9s7Ub?a49I2F0sVeT)2mWhIaOe?n3cJ_r) zl>Yxj_6+MmNjcH3ymCbL?6gaGdUD)N`znAFKxtRg3q9=;zXZAkX@k=_Z)%t5CG^zS zB)Ob++GT{R&e$VBB5OT_uNV{2JvijS!t@ZnHk|vbvi8FI>-b?5-l7~UY)}t?-_hS~ zVV?eGCJ#>^nVkPt82b$G&~x32BDohsbb zy0WDzzqq&|sp*3fQtcti%1+200YhHOWSXfQU1lwHp(>%rq?%lF!Vv-6R;~$jzc)tu zrfNoYZ`4q-l_Blz+_aWD&lX*#&eK@($oy@i%F-&;N%|{okp7wHRp=ynJWj8jp}L&|rEwgC2qg)km-8d{_Mq;YRiK%jM#rV4 zGr+^ByN&yM^6?(9Zy+~X##-i{eQjS=3oll7noG5)EaORw^WA&r9U^iQc{bs7d#<%@ zhv0dupL9E7b$#;up`W@lONyk*_d++GQ zNZ)uj<@Qa|VWs`)oh9vd^ku|vsY$QFwEj2A?awuyskgkjyPFH`x~J8q8UP^st_N|p zc&yQy$NJ{@r7zaHZQM2MzUsbr{f|8-pr@^QtUbaXxbdlv%2r=Lr`L6fZwz5xns~1! z9;?Y-t+;uwCO@hso~gI`1tuP=iT7dRv6^_Y#m##)`Kvu&c(NwmtBF_Zf_;_oQG@T)n40HzH5^XcKOn8R)cTKE!?xV-O#z)%sgC^{pi`^ z?V9|?{=m9tr36hQ+O*?7zIU=bgN>?>n&`2}57bXBS%blLx5|QbK*?7R3Cg!Xz*?@2V4Zs z24NLzKPbz=$B9G7SsTF>;12LX@N@7X@H>z^7P>j=NiY;-nPj0uqt<}vwg~&&LPtcc z17&@TXu#?Pz5)&fH-W=J$v+l+6BJtcEpUz}F8$|v4^3#(n9_gg?<#^EENv{oZeR&8 z8f3Yw7z68KuqRj@j0NRB^#&V(&Bo={Uz z^p9j7)c|R`)+?e-T5m|o5PhLkQ1pY+LD3JAdTSGGn$4!=q+UPLWbViz`bsihqNgPJ zErLz|*ff>ozkoF9vmCq0BJn-oh2UPWGPn=C1pE@b6g&X(tZ03-E5YxGGxyc6U?lh( z7z6T|(*5}a0@x+SIhxG_6gGdkuQNtTjz*O4AzDx7Pe;uQh#Z$CIxe zO*F7+O?fWL|3xkw5RWeKM%G(|B*ILB$cme?fQccjCNBGo{}tKsw((pyL8)B}Pn01K zTx{=|o?nh!6f)!t%H7Q3udw~mWgoO@oEJH=PyYYc?x9cquY8AZ1bicK4vatmZ8$^v z|LJMTqf@dy1^}n0|6kg@sS@8%KcP1>WE(!@TOsc15V=t?eS5|B6!~C?dv-;>udy+4 z9oj`jwQtwqy0}i=`*i6Uji#pXV?x}wmg9VH$sgB2(t=c!`v(a7#vcFwFSsNXyA%RN zt7`N2|BPdH`nlk1gDl<8IWP-2*NV8>(Ee^_fxM`2bt~?$GarCt*^5AanjU~M+3DVB|_aQkgNmcf=^KM=DL+Uye46i0!&84+Y z|7+_$1nGX((5+8TP0C6co6K*?6Gb~;($|mo#9gYjzNQ@g`*WT7?|mPxo1(A#fP3xa z%g|#d^J1?)*BHrrc~6>4*<;j~5p9>-o)DFmJj&CaO0-A#UGM5^>#cXt`&zdSzbC&uk(f_d&mL{Jrd4s@>{Eplp+={GMB zZ>Hn+c*yw{)a%ysM&?Yk%b9B}-4k>h?D;G6`HlkdQhH4D&Q~cAx9?Nl{BQ2jDH!U} zDUi7*&#Lg9@)}aVF;4Ni zuNLYeyeCPMXElR&Sixu2&Q~J055IWspYY=fIrROL`_Yh-Ql4`^9QpkA5Zcf}ctcYr zWqw`y+HsvW?N2|D^u_>~f*Csf&cpM2mq>j7_X=-M`_BajyS>aiv9;u{-8=q3-yfR~ zZP|QU*J(G;_{Mv=u1S7a+;UwL&#S29w?)MZGs#It!;}tnHGF$mjS|;3|N72}L1SH0 zUxqPkl3)E(ZE8%sGn2fosBB~|X)oiyCmn?A<%>niKHzgQL9n-)FK{H`%5C zQ{}EE-l&O3<}Gj3Tbmk_4V1~&Cbh22hgH|TyMI_>X!d~1-u}ME_aP&cGWokXUupFWKYs;mjJXyO-8FKU|pU8FPddV;AJbR6ZFA9E3en>1;lOV@(^2xgMey|+) z07##-T-4gcJBzTIAU0~-K(R~P10DxUk3nCUu;(ty8;gu_9DY~F7jBPMaF5i1w^0!x zG)Jij!sw^D9^6mxW-pN(c+qPKQ8Un~Agm)qz<(B7v?H{$^k&*dh#>q``G2a`B|m@V z|Dm?Nwbn!5$NetF{Y)arQJnJsZdzyiugm|ZdD=OMc1b%$-Y>L{9P<1~d=Dt|wz%Z~ zB9EyD4YTqUTMi>K8b=nhnY4d`EM`Cb2zZs}fY6bUM3_nN$^X%tX&~b;GdTFGwqG8t zdC$!3XV1*uW2QB(iH7lZjayW-jcM&`TI2fc|9$rV%^s-!+L32YzNhJzjpe!fciI2{ zo8TLIwoKj8gXEgqORPA@0Or_p>lK+W5Yr@`p_|nud5l0u_SZe%I_94>gA2*tM z#mnnAciZ!7;HECKD#Oh4)|S{Lt2D_rpM{ZF82xY3^Ec_=nq-?MUcOKNzjlv$ufbQs zSfwyOeWE$`AYu%+E2AtdqMe1QOj0RY5y^JP_!JpZx#q`r!1* z{~wvsn0a1Qw17|ke`fsGoJ#(``b*JSELf4ATD@$yv#XMWO#+RJ#5ylph?QdKrEU6h}uJw9bDe1}{S2M=P##N?KA(r(Sd* zC0+FTMd!O3N*(y=>M}fGNOJpxEKwClXV>=gWnWhV-Cl{iRH81YI&%47t=C(Fye^eF zGQo3==yTiGl+yot4OkC01L z%Ac-D;hJl8o@;cTKPpL{jP9|K$q7lxnYx@9@^sUAuF`tplB19#0#*sS^|rr484G-Z z{b?*j=U8-bq_5E~yRV{i+}>leAbWbq(Tz}&(4G)RKWFQ@t+*~(-P6-XWu{~&3`$Mz zlGb5FW@d6)wyr|A-825N37JEZMTfu{d;9tesi~vZd6uz|Ho)l`nc&GSdBs245?xml zeXaOMdr!y3w!l2*FX=oXxnpi$Q;N8)Q}4&T@+X{3r(VWR^vWN})v0f(@AzNyjCF3mWlXzz^x((K1Iho9T!am)9E3QvMYKk~g%s;_Q&!9YW@@#yrudSp?^Q1X* z!!FO?IQPXz-!J;Q3r}nAJG%8-gRz~}bpHh}UvS{ix-l~!ig~rZe|G8P*y?JX(Kjaq z4GCJl@KFCnt8*S*{Z2ogdpchfdxQIQi;LFJ{_C2**zeh8Wx{{^?~<-heg4{-FxjWb zq!av4)%`Wm-zI*fiSOtwy>8-Dn)s2H=65!#Hfh3bTeCVXxF`PJu1zZLL$6ZvUrY38 zy7$dzo3DGWT$N$!x9_eYl+U?S`4-o8j|DeX7&nF7gEca^Bt;g+S?VB)g&OaW2N*YS2BYjdjuI1-d{`Rsev zz4m%o%0&d3tCK#9e4-nBA6N}s2}-$-fU;(K6l?;n0VBW-psc51FY5BE@!MVl+G|58 zpZ}Vk1k^L0e9{hkjl_O|{4Usz%gDzkPy48o_K-*Wu4@CzTE7t}qzbQ0t2)>Ml(n3k zKLTo<@}0J>`9VhcFNKoEw^ZZct`&!m!-)&b1l(e8Qmg%8Z&bs5&wsEr|^P;<}{aRy{Q}IZ5n!i%&lx2m;LE zSyc7#EXsH$nY@P{Vq7}j>+w$jSscfZCk)CI^7y3mjJylP9{W0dZJvF#L!ZgMp>kYo zgKc|4U9q0J#0f%1-0+mF#5nstlTYlI{e$E^lbkjpH8qz8v#+`MlB)PMj#nUl zhrTx0PiRX$XbL|7gENv7(~~rRM`%l--S;n+F@B8e=E4h-G?$vI(;iZOSniC%yJs2I z-aVAOcj+?A!4_!azC;?TGUTo#O8MbjD?S1~*LhaCO7k_TN~p&dVLB-7>;qq7))J{t z{1rIuf+029_Q4=FN`L6OuTTN1IwRE4U5zxS-*{$E!T*2aFrC)U9R@DY^?gJB{kom; zq}{92O8Zr&j&2o6kiKV(PRz(oVIzr*?942?zTUKVw$9tm<>v~fo_6luw9)Rro0R^# z4Yesj+M9pB1L=?WQdpv|KMo77jeeGO8|@*{{u+c1Kcw?4#V>vtRgq8&kC#$cU(Vg6 z`&-N9r>b#A(ws30WlX!d*D@D!;3))ill`sdg39@q3<~lO3o2LIuY%?qa3A2^N$02) z4wG)H?N_0$F1ww+H{wrWrjA!}RpE-u30ZvQR$;XzZLenEPft1ayppyz(AP9mm(n)P z|I_h~t`fAj?fouPC7CW3s***CU9G@Q3E4rsHJCCx;tFczi`W9u^kMeR;nIxeDHS`JOb$57+O{ zDRDjTNj>7q_?7oykn7a3x=!sw6}N~!99Tpj+B&+L<(cczAlOEQ$Dbc@rQhb_>^WQUJEe1LUNLyo z9O(4nu!T??1jQNmYTzp%nD4@V6; zZ_GVu9p9ezD0-0y39o)~%JPT}4Qp5r)O@VfnAbD-4OZdDW_|bVkgv{vdg{)fhPVIp zs>7HN>F@0+dr>>p@s^a%Y7EMgP*>F8tQwak9O^J@Zr|sw`8j9=bK*`Ce#^-FK^*TS)ru~nc?nQ0dr{=F(qiV8IJ=-`e(>_P0eRE89H#Pc6|1PU~O zv59+=%5|Ue?(@%>&o}9y;;-NLZQzuko)4e@?`snSzTG;2eFK>IhPsZ`JsdS@T!Z`W zU;WdK57q4VZ}x^z;Xkgva$MK7Q@5ms2Sp5fuIftWgRLa~o|O2qZ7$k1<)ePT?2DSP zXb`fy3SYfZ>WTOGkKb4aagkom2?$F2N*Dee!j+<2`AK#3oP)3U$TBS>B{-|dW( zi%*MNkXOzvqW$Hdm`w%DDrzz<+>}?w?>o z@HMaz_&V4Gd;=T~{sg9g?}8J+y&&6L$UX(`S>Pw&?cn?1BJcxn3CI?9>O6)oz*YFa z1lNLJgVKKAfXBhzU|Guc7FY%R8LSDO06CMv`W58N1S^2{x)dx2Mu3&U4qz4VD)0hu z3|J3L0>i;^;Kg7rcnNqD*aDmZwgnNTtq$Om9{-Er<@jk6t1C!bSdrk{V0VzZTYW(4 zZ1n{Xf&D$G_DE%XSp=As$+erV2?l>GLR~Ox-m66P z$=>#~XL6SIhWQLObjpXoSU2y&06n&XaitZW}I?xmF@`wVAlksmzCPBZ-rX zlk-pJft!dEeG_}n;nv_5GS}NgxcAv7d+;yi`?MJsoku}&q0GU;aYJ#5xD~i58}@D zOUCE~%O$jrmE37`d}>Bqc4|`2=sp?3e z7SEIT=YwO_{cC6~`+j_8Zf<5iuU(Tk@hVP|SDf_JL<|+UrSho`PFHbcFZXU?vOj-@ z@>lmtlbe*2tExnp=DqJ$acaZI2B>txd+T&%@_D4n)YWW5Zbec>`cLmiF6}bNRk&S* zm+9qMBQRG!He9W7GFDNASVL)q-Krd%6;H?a$efswmNX$Lt)S6|X7=yirw4I`>n*PB zbv~6%D;~;g{@dNVfUd2=Q#wzV8|D93YZJUeG zvN}DsUrGmq7-|it?tx9zm{WD{-+e$_){xw6UXGrVxbIcptb*pye68@(I_(I4#{yK` z3rXX$5+{;Nue7+aF#LLah)scxdx@&MjJr$Ka}(6~@U&^xkn9AWuG7ew^bJ*<>s1=z zq;(z_fXsqvc(<)7kAS;nKfSr$MfQHk5ETVbV^#NBQj} z;Zn!^_@4F<9{MU(C%$deUHmtC{8!_bch9yj+9eYku3;KvzglYuaptM`yn7Q9axzjA z(z9aXauQNgRr~94k)sAAs!Y|VGVXMm^2#q~v@TP5=ruG$c<&A?zno!VzppwEdGF=> zBAC^BZu%t-J8J{LiqVi1jdaj(!alPEI zw4IWS{})vLl}O)>Gc;V*Bg)@{_ofo>yB$AS<;9S&9`}l0)hm7w@#T9cxfgM%@gn^d z%uU_z1??x{lF&O`+C*#_?m;*PHb6f7ku&O}vgt&wgt^zVWU{ z1AhER_eY)$TNXO5e3j`H*ek|wmoWU!+-uQ6Hm zr%iSYCLK>ntvNBREivhkMyvN_>@{0%pWX1fyBl73N2|b9_209s+q%d&`Q^3S4|kum zbVkzS?`)jC?S_?b7wDrxU7x(L<>OjiYnMB@q+{FOYu@k68RhLH{6MFzW0q~pO_|@M z?Se0lKe!f-NQFOib6R3paB7uz+wZTQK5yGHejQXkr=If=&|dPHvm|}`2OXPFUbME` zu0Lm;yHmRd6AxnYb!o?#x7ZV+WukpR&ie=%`v`x^yj9D@THapETuyjkR6pv9K*ds*zj#I6^*~-d zbsqfXpvZ@v!2uwj0yjzps~b23yb>G^b_Yj-$cOH0z>Z)H*c(g)yMiL$M}bnFXq=W4 zwHzwtk*TrBmvUW4yg)DmEDth|bW3>=rc^m6fP6M&F0RTq5tMu*aaty^ERpdf-yo3s zsjDZ71!<$+AU}T=>($+ZLF6oOO74+6Uc^w5@w6{uW>lo>9HK%j$rWH9fK5RNO+`Cfpv} z54aE_w!}r_(s1GHHJ2+q?L7R;`KH?Y9<9Z{3+K(*%J~xC5GH3#%-saXOQQ&HyN17y zf-4qMe!@E7^5!$9ZleEjX}BoD62+k#bc51p%fVQ;=5TkDhcAz7bGR=Oulg-oSC|MM z#GeNi$K%@k?Fr%*#oyNK<+37hvADUo4Y1;)~!+4L8GPr@z4ZNdo`?xug`%!dAx=wFz9ktE6e%XlQtCSmw%v6Md_FA zbGAbc@NVMz<6?1s{{QoyW9j$9t>^<+)JvCtH)-?jE!N!=x!2GC`}u$W`hTZqf|+cW zO){EEHZ;j@PGv5qvXx2JGs$ixWt;9)7Bk6QCfTaAWhg)Ye`f3d{rtb5|1WBO=I8&< zfd9`KpOsYtdjOOa$6u#v0molggcGiGTm@V_?&o~U#dpd2TB)D38T$sF(q_VY$$cr;AXh=VNIEHx4nMWL!mY+~U+)>B2zAOJ8EB+R8Yo7sA|JPV;!V^^J@Too_|s*ofu%4ON<0uQ-LrhOD!1tm2F~?bx_n#VZ&ala)XCv|}U1 zs~p9R4bf3~msj2yERJN5p(fMsNKNok_1vL~FO8HNr(XHvCzgA~jUTyR)cBDy7dL*S ztfuj!`>A03v{mIT7(Zzqzde3zF1?4xmID>Jx~lR2LyVt16d(vn-ka`7mRB7${t#nvFd7ju@6n%IKmHW4AgWWeQJ zzmBxQi-qflJs3Myjz4`JbvoUToyf=2kNN5CdTuSDdhYVnOP(e5{Fj&CyPhpYkL~Udb{rWO!wcFX{~2~$d{hE$VcS*c_uRWI z9mBrxw272K+URR9zqFBUo3=?N30$Jv55!%9YeSl&UTxHeeQ{FRyL3uYcQ&$3O^8eL zY{!eWmi#W%A-;OY3*S}mfV}5AuZD%*l_6MBdba*h@#I@##}iu^{Z46fE@`tAuY4}y z{%p^?R9xBYwmzxqa-RBrz!wyCsqcsUF1O^a)JJ_keCi|Lmk!*w-#_mc_`{YFP1!be=#BN#g zeQ!ZKsNbN#ST(OJbiYxjPO+`|FEu|A?XT@0o2fk8V9`^TelM_r9HGJksNaCF7a12n zK)}@HBUYwr*}yW@%Z8LGU$J}H3Lyb9jgYyVeBZ<#$@7^|{U{&MK`I}yabkZKPd~vc zsrxdA>!|LZ=kdEN`?>PYjF&8}`0>ffN!k6AGREfeLnrex>6a^1y2~iB>@`z0w1GrD z^-_H)wzbkW^JvU6mRBPXCjBr#4z>JTg~G_DslZ%M)$)}urc5MG!L;uXU z#1W|(-Lg`nGgHOJm|uTsk7@LmWu^2>%FakiYtuTvzBjA1m6TuR&~uc3f0@(OLCQJV zQ_lOyTl_jL+=0jcxaYp@-{Ir`%*P-2p&pNR{0n{jkv{%wef(2>{EL13n|%EL=i@)> zcJbLq9HDo)$j-{$76hezf+C+ci~W>}gI{|7BUX^-d_8W5q$MTEcSF9}_MBxv zY8tWjwbRpy~s@MCkInfA^B;P?U?|eIk={%5`Jn!60PanMEQ=g$~_GnoR$V2KQ&wrIPbG_;_EF(q9 zoQXXrB_y#XKsMr+@1E>+#2#~YU>`Os%l}?1^3*}-4uuCn3Aypyf> zPX7DaVVdmaK5H%Q@W-{(p{{Q>)@#`NMBWQi#!RpKUQYTVYzS5OoO0#9?E2Z!@Wpd- zpIKVH-bpwE6+U}r_S4n+KKpI^aR=%R4_~~R{bE)4m~yW!zP@R>tgoI(X!CrB9#1eI zyiD@{cA6{v`Q*3TUphba<5thiddRXysPF*~wEbY`N9EpGeAlYc#dDpo0OTIEc7P(%o^NEL8ZPf>5y4VmDopCrQ`CkGy1sj8se@jsG^ld@OU-S=JZ>sfL zlE3I}n&ITSk$8gBL8*HlDCM8&m0s&Hi%x&1C;h#i^!ItvFY-#S^?gOBf54M|g(v-^ zp7f7#ThHZ71=hJ=hD#E%WbpKxtpuAE^!~ z`xZ3>*(1n(iRZqwYa~wVT6AAYzM|)dz{!Ovrd#Ipm`}Q^g13QP!P#Iha1N;Yhjdz3 zpmhk6PdN9RfpUGz{y>t?ccApk51^FeN3aKY1eEdg6X*tyg7CT5GGHti z2;Kw+flI-%;PYTPa32^9QYNcBSe@VY3SeunA{Y&ZfEi#Va1K}*d>pI-{tFBRMaL2b zO8Yg&+47>O;idh^UhIF>wU=_sAD@D%z4=?qd|Hl__<@Ak@52Z5i@bjaL22)gK^YI? zm-LZ1El+8=P11Y!`>(_kH8P(u^}Yr$Ze(1Q0c(NcpGyHF`9KWCrQl?PtA)7DxC6Ko zxCV4eBrXj%2e$^d3-<%AE{h4HaHq39P9aVnZY|EXLl(Pb*;lIneS8}pMgPpb6S!Ry z^`moMeTVthdL(mqHiEx9%$Q3@4;{Hef0%@2akmH;X@#2E7aw0IbWd}*dG^*bK@q> z;v0-xLpfz%EN`3YdEDPc_-60`F7Rr`$nDe<_YL9m7GtAJSwd;caPCFprs5XjHsJQ) zj^e^cQ7&8-ZVqlO&X@m>RGhHZ19gx4{rvv`l}`cxuk$UQ{~zK>Qyl+4O2s)n|9_o| zSHST;r2J>b|J&sdeT#4=jEo}re>>jU%Kz&=DBy3CR2vlVw@W>Ko4-9B|G!qnFEloO z7yti)%BO(;*ZCID|G%oz6wm+fP;pMr|G%%|6^xBqiuXA){@*S~abqKk5o5=bv79SI zs0jZ5HC2wYm;cxOR4{(tRpl)hKOw5!(EXjSIjYm~|KTdW9zWjvy|iU<{J&0jdj7wu z%Kwk^{}G;g+5CTdkN-^h|H#7iJR|;JrzxKQ@9nUD7c%OK;{T&P^|AT?AzprOUfjh0 zk1kxleEwegQJ!hCanR{b&;KWsP(5w?6r2Cg^wd-Q-t{!`|C0*WGoPD3T|ITW;`x6& zj^tGw|9^7{v_*0J|4dJt*!;h?p<(Y8PaB<%|DWg8M#XXLXTtyMyiU*m+wn~NzkS~+ z|Nnrh%U{F)ukrMQ&Hq2;@t-OGzuCJV@~Qkk#{X;knN#`yf2(KxasK~%m5-VK->>c$ z@c;I6<((NXKdA=({{xk-WcdGYRbFS#|A#0ZUH`^8<^Suev<3WsGvz-s{=b%r%lS*Z zx5Clsv<3WsU(bD;&rk93-|FLE;p5-p<3H%*|INo=*N4CFFROog#Xv+N{0W}d7U}`AL>=+GvWV5-}C34|2HW)EjL?P|NoJ_ z|4Q?Gy?Rw;jlZ^K4VK2?+J!1b^j6P;+nLu--7VwRtq$Vq#hK}BN2qL=^gK_F0@H`g z*>)8=el2WA^x13osr2`|a?x(TZ0)e-x>b43`(BmzQ!e>E&@xux^Xnv?=(S7bCfrwR?BHoBmWVgnb= zGd@?(=;FGN@;9TTvOkubH>S(pm5>H5ncHYRK~ZOCbyH_n)l_Au<&yLR^V3I={z8|` zV|>qz6Z@~_>e&lPbL!b^Qa;(k?>!YK!`04J(TZ|a!Pa9ySas6op)0LV|CWg;Te(ab zZ1Sp?4G1X{O1*SmzURS7e$vKkRes}LS5x1ctZ!9)Py3VWDs9@2!0v*@YgzeIA)Ds~+`?d(rvI zMU$yaO^+}lmUI&IMrx(;j~`QfiQuTJdwpZ?n)yS4Rxbds$l+%>D|z|R72 z3cmil3;yr2Zhd3nvQ+$tUt5l?Hu#?OYp~>&N&M+^zaBIC>X8p_?|Odq z=XPJ4z!?iD(>Y(HQ_{$<-VE*A=8cu>G>>oEXX&rnPsu5tezx)Eefvv0H(I!_cI<1< z)_SDL$S*G3GWR{cUL7R-&Tr=pE1&SrZ`I$J`C+9m2E1ZfC3XH&Y4hf#eGZf9{2SBx zOs4(Q&XseU&Xs+WoZ9)A&TTTS%{SSTnCz^a+A*5!cKSA#_wn;rVt%_gGqUE$MKwPv z+wk6d%=@bSN7*ebnBH^FoaC+Ve*Ei!?akv~-R|G>Wa-@Bx95pzKe4~-K9i>Nx;|6C z?|C$R<dL} z{KvOEGWYG-zpk(GbM1GQCU^fCF14|QpSo9x)BPlmF|V;FOfuKq!6a!u?g-(NKrJt5 znMUpj*PjN;wUuHBFaH`S`!&4|^18A=yXC$Xd>b4K?gOs_KLSO@_yUCTW@e1N1Na>X ztt)dZ_Z{GI@IJ6CLeo;P9QZI83O)hW1lNIeK%Qx}1DS$Z9YFH7I)Oicok45~kd8PX zj50F;bXNnf1W9YLO_;k8$hKPU%fKk`auB<3H(QZe$VYD3J6iTlgMzlA!2}R90{3+w z6uo;Q2o>(W8H84L&jRDX1z<9`3`_wZ0Mo&T!3^**Fc(}4P5?K82dTHnjI?{cy@a0Q zYI}WYe{Xwk761dS-ekv{$JZ|(iE2HR%HFZ zpZ_;=<9_~M+XFF=vHbjhL0kCw|5Mlh+x)(t|1Vho@8|!8_txwG{rtb5|M&C%n*S1e z4?q8}*Xaw@_h<3{aXC3j*|~c2zdyqN%l;%gm^+JZgtPy2w))5<(!3$C7 zwD8y&EEVMrS0qZGmL7bK`t3upgjOSFqOKv|a{Fwoq)A!X@@?098t8a!C~vngbXZo! zOi5R%d_s`-d0NSwo0#D_kFZ;qaOpKwykCN!E3?K`vE1h>KjFJ|ev!)G2cEks3M@Hg zO*roHl#dlOG+suglv&DvKFpKma#aTOVpcVkcToAOgS0K1mJ3sQW>an{r`Rgoj>61k z-BxCX^<04D)8FS=!s%MpM0OI&P0HY}s-EAnnJV4fGPjaW%Je#Ig_cf@E_T0B@gfQF zjwfv=x=OTlYR?NPgRCL!sPd{8(8Jn|&4Gm3^$jAQF801O12PlGtHTq|^OWIgRliq) z!-MX&GJ^Z5xVuz2va&PB>UNfM={EC%$+KmQG0GBT{D~ci)ITgs>OZmEYt}s1gn*?1 zje<^KH=*0%wrsg~chHyEfE;r@>UtvZL-h>bx=MK>$@5xOp67$>Q=U}HBhS2ua7M3c zJINQlruCtEX3wCnVAk(;?F?8FSVNU(IBjn~^HVG^>}Se3XF8uOp0CUOzRDviXddZ{ zD{pP=E~fI#4YYxr@eva2ez9zDNcG!L4BH(4{e+9Hi1dxiis{L~W~UOi_F$xBdd7ztb;NT0az2(GS!p=Js1*#|S2PN;B;m-4(tn%&YF&E98OGddyRKe^|Dz^<<&EzbVLjxhnU6o##DCgZs(_ZHhu z{rSDs@5S`P>S1p=uggp7S%=HiwKf)Nr&V^|6{r70^3LOZciK+(tGsIk*0(+@ly@NH zgf4g95WA6_=G`<$#?l7H(%eFM#}?$>{`a;?6_xj?Z6f>PdCFZ!wMl^UHu*{YE}qBO zDcmMCE82O__(f|U zyzf-r?>o=?A1d$f$@`T;c`q!;`)$d42IJjnUp}t#Zcrweog(bt^K~k$@b7sbg0AY@ zz`U1LJ??P+tobV62LsAmc}mt2Ij5*+#oEsb&U;8b>t*N9nxdZdHf{EhYO}AfZSKhL z_(fH<3kNUuIQjb$k89)=F8A&5#$Mq?{p}rQ=j)xmiC20%PeD^UNqZ@-DNf=w!>vOI z*@$cI@wf2cWgct^%001HKB#0pDqQ&L#jT|+O*-m z?1kHaxuQPrSqu%v+9Uk3zylCTGvxe3{(dk5Su17s$^N9!Xr0AqTk%+Yj>xpcvA0oHaYXmw9Y^|rIK48n)8j-wm3*ST;)r}7t-@{HLd@VKBILB5K(k&@B;rZp3a4CZxF9l__ZQLg@ z4|Qt0X|mDu+hV3}Z9UMkR<{z{wSC{;ez;}I%TI2r{CjONO=}EHwwO8n<++>Nx;EBY zdh?X}cl_V7P93Mx`C~gv_`J#YM;|Po(y3~d8z!MULAE& zjd^W8ILQ7imrHohSyLO{zGctdaa#_#0^S&vYFXE)_*ahFR4?+~iOpZx7WUYZlwssO zPlZPgNn0Fr+q&F_?@rlUty-q$cAK89TIV|Jm6xuP+8VO3nlpkBXz`7gfhs=jYje5K)CH!b@2`l(&>+OPTg3-ekU z)7lu*S{l=u8K*Y!rZqMuoA|$K?TyJ+-szg0lG@|4yZW9q9v1ugh@aY}bZj@X@679G ze}g8uy^NoT^?_9mtX^FseaiMvk8XK)wq-r2!Ur^pc;H}{5BiPiyFRefQ~SrU#zuv| zbWz<~mc8`t!IqK7_XqXAXpUu>*0eZ1Kkqg*K2JW9u(!<7VHHo_$RKX2${S*COK zOluxYdu2X)h1B<^Rd4^aAol4dNngEs>9BIQ-)}x+{z!L;zvXD-iJkVXe{A|R)$KFR+56AKnQ7iH3cuLcv*)0?a){2b zku%TL9+uC5cjA8*d<=XM+y=f1imm+HU?nDy?|@CgeW2Kly$22j4}f#QgWxLgV{jYz z8F&!<5hidojp50QbWn zQ+W3yU>@~-37iQY0{QH@kAQs6-1V8OF9q9y(*FHGY42E2+G{*0?RPsU?fD=m?eq*N z?e;n-?I?1iw9C(+v{MDfi?myPP};FADDB!0lzPX4(hlRnWbkH?bqwy=pw#yPQ0l({ zl=j#OO8a~WN_+hTO1lOJ>vp~Xly+|oNK^Z?wKp9VK!56{p zpp4J=KpC&!gN#}C&)`E~NO{Y81Z)OA3U&f-AYaCu+M89&URuW6M;p+M`Fl}bOnj01 z8iUoqCSZMi-yO`j?eI8zA6^5-vzH_;4JUg$=7F-0q3<4!dFZeX+{d$~uvga&dSAx8 zHT3^f`V=R7Fy_r?9qV{4dq;Ub)Njq91!};!iC~F~PuR~c6F%Mi$JvZUx zU0<#222RiaZ&LA2<^LzC@JJ=c3je>3m*I5$zfM!Y|F2hh6wm)RRkD6z{@?pq7t+5) z@&Aogy3_Oj-tkQQ|9+*bD$M`uG8E7M|3}sDkMaLcE8R%Z{C^{*Lq2o<|2I{h)ARo~ zWl3Ka&HvlaJRSdkgUX{Y|8J-DwpXzElak>7BUD?J4*y?E+1KVbol?LRNkky zNlEbk_o}>0hyNd;@-7|z|8kXg>G1#cRo;d9|02hGh|MGZe*V9#dRAfnzo=)G1poh~ z8vhGRh5vs|G19$VV|Fm9DlWh#U!U@=j6t;YTZ5|B`#Z}NV)$d_k*jeH3JE`le3ayC{0XG?qo6S zE=^niHdPC3{ZAmD%hel)io@!LlQUB14h%ppb4!s_eX3$Jff~%pL~r;FE*odw7cMeV zvaO6g!P}E19}9Z|*~>jB?2UYXJLUhUdXC)hNIR9a+Ijf(d9aYrUD=&#~@_FOKyz5l!Cmk*X6 z`22yMoBwImsMr>rk%@aT?N{cMBRbpmZ8Po9_L<@kuIL%OVA(&LjSV_6bX8olrlD}c z7*B+{uB!L&wNJlSrQvgT59yb%b1Vbi#MPL%AQR{FS8*>+Iiix{oGW#g_MCtB$s0c3 z+^pRrLm#j9!rRt!mgSUNcFG;q>nzWWxOL#H`-i>#ZL9Qqs{CJ-gFVgMTJNqBfBF}F zJ`1?3#Wz(K9@x+=<(^%ZmDEYX*Ux^fQC@>*w;vf5{X~tWYnGe2CKIP*;-JnIuF1rW z*S}KQXU~$vl{=gNJaqov`|b`r_Q*u+nwm=Z-7%MM&j=m4q|%t@7k8<;pY}I#<0WN7 zWa7F_+_m54==a$inQV)m?I`^|bM`RzWuLTo@~YJ@RC(ivn_K*S&$s=owbZxt_Ic~l zMei|RS5+>`krpKEnJ55*<^7r^tt7r}<$D`0zYE7%SE2PpY9#_2hvo?A+OGAFdl z@+$F|=BacexhI@m^j`Mphq&}Ur>!MnQ#TWNBfJ~rtq_cLag+FaE}1L@H{f>QzQ6@1 zvcDH@(z*ifFBg9A#3a@sPKHy%+5DfJ*=BQq!vD?PL>WjcJm4DsJ__1=pv?se57>Aq zG6?Y$AJ~)GyB8<8VH&asX(L{O%LBc+!Q=Rg;|7c41%(sr%yUo23EF$4O{IMEa0h6* zxis5B(9i$-`G1@L{}bi^Yz~Zz$S-tY527rx=s_UcCfPM!#n0MUv3k3$b=KA%d|B5`RZgaxbxBTj zY9`%{Q(c==*|?pbT-Q~JTqqoZo(JhU)j{T0!gqw@iGq=6%I=$t%qU<^4tnAM648AL3 z(|J03&eO?kCV5TlH=}t@Nbro`z5d_N{}=F4XS$z|pZ`B~k0n3A&3jvmspf3KK!5ixP;iR~gJbTqqm#g9+rmi}MgNY9PQj2|~TBQ7^} zLQ=x$xR|7j2_EtP56S-}CEs^MzPHbJpCn32F5#VP;r8RoA>XfgPs{f))RIG;duB{X z&Cbk7Ps+&E%gb}RX*oYjl%iG~_r=J)dWUDg!kudVa~dOx^{L({W#eA$oh z1NE#6z3=DeH-P(Zsrx(B`t@9SoRu*obxIN?(0QQNwJuc8D5IW9@vV!MKi1=SS+^*E z1^lDJq{_2NG#Dqg1(EoRxRfqJ*6MFp&$p}}(Y=VjuF4C&EDsX@2p@l@#~&SY$c_~@arpnpT5Gxo!_RojbC27{c!h5OJ^iK{?5kP+iqCN+^ey3_UP=epj*WFum-1u^MKO!BEo|KL;~ zV$yG%ZF&rozQUwuFxd>5^b94X_b}-C za4*PDuv#Y`3+~1*IuzmB?RBvxZv2}maO+R%^|9V-V~?Y=koB>}=}~Om$sggmi_)8{ zqCDQ~UxQivyvxJ;p8)HkBkGJBja##hwXx`i_F!ANY7IIa8nHia8!nXcCsMzVr?G*! z0smC&8F1S+!LO5c7k>+PA8{k==@()nK>TQU|Eah&xY0{l_f5Qo_pv^=r_0(5|G(VL zF3;2Gb6nta*ay%#)xo9ckT&CX%{pK?|7-_3rJ2Op!{2Ku-wxaXZu|Lv|N4L5_5Xo< z3vRMpNPz4i&}nphYDQdkYEsVVJ{e+$o|KpxS7P%2*reR+#o|6Ob7DqX(uAb6lF$W| zrrrMK=m$g}AY8l2uG}PJm^jpuvPUz?W+oY6r;@==T$b`=;JuYDa@V+~-UY2Mzvt|; zQ!A-Cjfwj-&2>z3M3d}fk_}2q1~AR(O|pSWmNUr=PGx}7p6f4c%5S0TwHwQhE&JfY zudZISHt+GZZ;mwYA?1{_d_(0wGWp(nvJXGfpxvZCH!MH!^FVAMFO}z3TYm8q`+seF zf9qFU{yXBmw})f%sJOuIx=vix>5)CH{}DNFK;GTA{${qDHpvnuS+=Yea3Z|PI*?VWp?KG=4Hb6wI5)xQ-IR`01k z=z&+CS}^3H<%fFhH`~^jWE<1oh^D=+Og1-8ZEMbT4%j5qnskdM9dSwRRhryV##OyT zO~&4`;i`+n_paWbIY-)fg$h4b_i)staSiUffAvo{K2)>czmW%2_>Zfv9M^U2)Gevu zK@r2AtBP*4GC~~dEmGpkwz+86l#lxTvM*}FqCuQPtio6Cog0{U!Ov0kw)dGlui4P% z?3Jm)-)&km{OM0q0@^iCTmSoXxTf`R$C$rF$mEWzGxM3vU>u77D?EQc$=_W(fB&1m zyL$c}T}GYTtz^UqWpQJZuFRY?Lhgp-Gc+C9Q4quhTSC{tB zabz!gou-NM%f5bZsWd$~zrj9-Z~RcUF;Mr<<5_R2`~B4U4k`KRFHz;XPzqyZ^cbI> z&abqr>FN>26o$0+neD8iz%OUKMUl4O{Zhwl{3BHUQS1Zw>jM%NK>KtF3#v)vz}OhE zi|}fLMx8pvw&p)F!&;(Sf>?fxNM%*VMD;Aa{^22&PsRLm-_Shu$%&3jxQ>QQ?3R^9 zRP{`@w6nfeb;?v{^JP$mB`WP?>_@tU1)oV7`p4yX$`PHJH9kLYIS*i~ryO!_{crRu z+S(BriP3S{Sa;ZE5W9>0stjFJU;U!vO-#+m$&K@rQ`#$8r~oli04mGWGr^69Jc@h(q2@=@c?&Zmg+C4KRP zN?%T;mvQ^P@>jAhB)u9lc6!6ukUZX0X~a%O-iLxbem$j8DZMFQg z_IqRRnXxoX+uKA-qEoMKJYJm>5(UaRA#%pUT>jQ)JQRFeBz&P)xc&W*bwkSuACDX4 z(%*}CR=yd7Tm|0@IV)A_KGV*_tNIsmPx@xAeecxQpZtPV z8KQd)?QxMdyVJruvC-aTYS@(_Pzk3YzB zzlqQNo*uuPVXSPfJbpXB44?ZGeeU1sbAN%){U?3yKkIY<9iRILeC~hg@o)8%@4p^@ zRZsous&}KH{@r~1`rR+MpXj+SZ7lV@&EuD`EdG@~>DPJuGCt(~4xjt~=kZJb%l%J$ z?*GT*m%g@b)GX!!=emBtq*p0z{^BBZtf8(3dyhU|`NHk}mv$Sx^v=gFMj_F+v4js! ze(?JiEk=YMkDR)-`sL5mHlMv=(g!-VRWjL}nQWL$wrD2XCZ{%P|5d!q-gWe z_3}2($vkgj|0T>bn@IbddbY~g&Jup=SuZC2p@|nTo#A0x%ja~BS!welCLZLk;yX+{ zg2}eb#0!*^jg*Nm=-)xc&#C(-nRo%GJc~&WY2r^!yorf-Gx45Zt9s45Z$hOB8<$-9 z%faD4#eDZM-xCu*V&d0KdgS6BCbP;!RAvo9T=w6AxnIJ4%YDF!6U!w2=0kJv001YJH#mw*9yR^@fKp zUTs;Qs_-%8UR`{B({fo~J(1An`3^mv;9P^tB>uP4T;b0rzuo@Q`KcebdS=!`X1;HP zia+3iwjb>LsN6e??^-pw@m06xfHMyXXFGm%K?}GW@>c>#^H}3Re(J3>kYR7-fPFyZ z5_cRp0TdZ!3W)iVI_u680sP)wadcqZme?z-R|U_rHSSxEp*C zq%7`l!4JV7!GqvW;3wco@DLb8+Z+ZffS-d^z^}mu;J4r<;CEnC@CUFB_-`;0JP!5* ze*uSqCqdCY1+dXXP062zR%ctRMINCdSvcE{Zzg}6)+b|8gLD07E^FHrl6Zu7A*R~sX2xp&pv72z=Xq=pTF=HtKia&Tr=pE1&SrZ`I$J`C+9m2E0OFHkJ3@&;Of#=S{yGrr)>H{v9*T_f5ZJ zrg^<-{%-nCo96GP-#tJ7uYW(C{!W_aStdEv^m}Of-E;c;cCO3!rg`@j*R|J9K3|L1Q3e+&GLTOg3S{aO6K?2eZhm-~nL|B_n& z-y5#Ki-+rw8Rczf=9VNe^z)cboVUlRn9$?=kTlCjD7S@gF6{b2!!0 zh~B>gPS1n%{Aewc7nwJ*ghpNM&`-;piFod6U?))KPf*ov#CTlXA_j=3m(v*?=haK)_$C~9rF=#|x(%9N?bLDps~9{#(7@v+Bp zUO&7#>Y^I++I&E`>G#0t@3)`-zy9m1A!3fVm3hF5-?=|g{!dO#OUlUfEc*W=`~R2bn*Tmk3(o4>;L!+3zoZOCY!TldIf)+Z@F=qE31`M6fs z+T~6z>DadSn)mx!meYBjUmsAsoupqMp!b(B=>tr5q5rFT0zKccSUbkvW6XcN^#sgy z+~P;1cFTH7L_1|K$gAw$hTpbp^WIk=51WDm=z~Q+VB4?BK6GcIBiJylu#MUu(G^4* zY|--d1?Ua-pfm7a{uc1JfWHOKl@^fi@t?&1Cufb%otSWz%m4k5|LyhvJFvNyOKiIv zg71JeAow@53P9F($LI>hWMs0d;dR`Xwe;76E-N7gz~3!Q^x`^xQ{_i}V11<0|C9CB zUU~yhe6d^C@f)l7vi|&lioa9E-ycduD?J_?d$o={T&1&Z5OO#UK!-OV+}AdtI$=Mw zma^+L{nh#FHVn^QXe+KnH&KQA{i(kbH-Pv9af5KhoFO1)`IM)V(r3t;W?5q!OPI9R zAeU}036qA)*LU!@gh?Hx-h*7a-V)Y;uv{E^5mjefCo&1n-J}~c>A;S37a3#A(Z&-y z?OXrmsMlNk+`mf7_hucWQ?AN1cQkQWrn#eu+d9`dCa1P8%ajh~%}vokc{R2?+i~EB zFWf(6#8z|%&7~hde+0vM7W=u9VrM(APY3s;LGQ7#g#-zJx9x46%@yPnGAK1UM@&(V| zJniHiBYLt%MYVs=SyLO{zGctdaa#_#0^S&v%HC?NC4R{KwJ(f%uJ!XHZW^$A*qm8o z*dIcLS6LR-adC~y52ifU`|1S)*N~6Nw#TWhi)jx>)1Hi`wa}$)J7nUlOtwQNU6RRm z$i#7(Y>G@aKPFv|Nq6Ja=Et;Fv$So2Oy{ncY&=YR+M0BEf0Yf7QyrXBuGOinl!;R{ z*&03AUcMUx8bv&Cu*(Pi#`Iku*y*YL<5+LTLW)pV^^;SUM{H|;4{{;9erd%dK+R`Sq8tdDfFZ~rvf0v7?l z6ZmjpUDWB$lPqeTWXG+r;bm`Tuj4|Brz$j~}0`6#!=||9@500{(vw-wV0AgCZNZ0fqk`UEL%9tNLiU zKcD|6p2+?3?b7k8=F9OJDqTz0rO4Wdsg`XAFqmhG%ss?|-txD|)D4JR#3i3eB_Fp0 zy=7)w7LMg1r9Fo+%}Jbo2maUQFs3<)Y3|{4j?txy%t_KurZnDBZ_shr@Akb zj?1Yo%cPq!>7YzHt8-m9Wzs>JbU`Lvu}PMXj+F24f9ky4G5DTeqAz|azW45oT5K$1 znunLR&c~!fGwI4qx*(Iz&7@m1>4;3aAg4MvlMctETQljJoa&B_F!$Pw({nvNR}6(W zszKNWoLnN?GPScX40X$ziENOqYScbRP!CF$?E_9CoS$bUyAB0KRz*Hm`yj=Fhuw3keoQi_eFr>BI$59L zEf=4O9memKiO&Xk_yF>-|MIuM|8ffiQu#lL{}=f`$wU9MMyzv~6)StH$(OO$RU*l1 z9FUrjotcxFoZF!B;3f?Qu_bXg)su?@Osre~3Z>`5OICi@F_;5!>&Wy#Wf6_&+E zcajd1!wU&3y>kMFQ{2{`y#rVdpe~War9H7{vl`0}zKdk^Ren zBS=3IHyGvU>DB>=Ja0d1DD{(TAx>-y?!c9$EmG!ro+Yi}d6>Q4Ad6>+lXVK{QE9Xo zcCXhf6+~CTEo+iWf3b>lmvluyOiWg4ru^I}{Y4aY{87aTROM|TH%`5jPQtsqYdqx* z_QWj*?nQ^v(rz1`5tBSVBY|*fhf}juA*bYewx;5B2G$;tsR=S+0DYjZR;lwjC8F-J0p?p9Yff)T;;`jDCjf?J!^E&sj_K zk9V8&mqEhS3MXa17}tQZFZV5b>jE1NmzAo@EnTDIU5s8mlyd4b1Xz2LU$4hhJ`Jt& zJ@pcs5}n3by((j8A!Ay`%pjNSZ=v@^FGHcRyTIQu>@`Cjk9+DU^BK8%L1ac>A1bE2G&LS{gLhI50&Yu|K<0Gj5n^ z{mOeY!3=dx|Dw-l0e7|drs~228@i?3vx~Xk6%u~as<(ey5c_nKq_1ARbXd9DnMj)S zHYRz;q|Y(wNlbbhlm5iCZ*OVaqnq?9CjFbqrszARXZx}C-p{+dvN`R!SFfnMd-Lj9 ze6Ko5`>&t(IUYIgwdfoSO(id6Qbt-&LxpH52{p@J? z;yJm`EUjMeBsLE!{EzRGYtnn1ZTgM+S4#WrS(3PNXY-$j&fk0A-GRp*fi(2%J&xV- z@&{&puTyW_bnDl#pmEOate#5C=+NnOosUF+JPnq=jrhONj?!#l^ zNBn$N`n+w+n6I{%@8_H)>C->x*nIM$wcU25?q2>Dw$Up5($wohzPRqAF6(ZIcHNhH zV>kBrP~j2l1FIZZy}CyFlj{Enn)(#Tl*w8L%KUmgcs{rRya?O~icI$mDEUspX?aV_VUlkMVQDzI zM9(L(*#xi-I1#)MB%QkvI34T--U5o;b1OIwM3!@358eq9NBLP+WX;7da^BsbJYVXf z$^XA#WzfQi{yaeTHJ5g(2+DISfFcu# z|5A@%@{h!6nE;z}{+9e@>K=iUs{!!^F9vIZO+lH{qw{ok2O~f`A3YzpEV=KS5A$_5 z!B#XV`E$0J>QBz?Q{y8B zXdLp#+^@%szIx$GB*v!4aFtm zR^Y_wVH@auzC-`z$U(O;4=1k`;2vCc;zi9QpIOAm9mUO=%^F(Vahw~0Y6oT81BPBF zJ?6jsE%3kF0)bThPvig7a?X1D|4~&7?Eg0e=y7p7p9#?iO#o}vWDQQR$Npc{NAt_V z(Rr`?CmT<^+Hkx*6pvcKbHcuJU${Zxp(~Y_{H|qvzvc>c{uglHUe}+TLUa{B46Lf+ zmsNf#S54&~U_cRPQ}x`q|tH6A?EwG7gh z-g^Rcz;9aLVB#%J{N&ljE1Kjr(>V_&xxNMpx=`1#LG@ERZ1~Tsw^lp;^XDNiJmZ{i zG_31I-2Bt z(^`DfIslXXcuC2L3nQicr|!RJ;%Azx_-DRG|F5zuFKzj;r1U3Fc}tTWv{T;Fq;D~; zhxn|ujFYVQ8byC~@vx=W{HI>@qi^2ai}RP;NO--@FW-J>^!E+ocb#sZPm|rf$zIzj zZ|s!Mbh@9riO)3I(VO^8r}DB>{ScUVztae$ATAvsbF((94K?Q>p;$eQ0GAR0EHjz12R8# z4+XQp;ouD*d8sw~vEYsP$xE%>CyiPUF##0u9(9C;Xzv!)z#I@~%?IIb)w$0vfXndj z03QTj10MqSfv5}I2f;_cLm(;-_YdGoQ0hA!JPx9ka0gMxRiLbwcpU5vt^=Z&?8Q&roF;+{B|KII-elX9G=a&J)adH*M|L^mpOCp}6lluRO^8Z9z z0r1D{|4YxVe@xW^`TwX#{=b8EBG{5M;zj;VRsQ5+^#J=+oHqG-fM=AyaNq2~e^IIE3L<%iudYCz>#Zx0y#ggn z%4hE%=)FIJ>37ofd-y-6Z%}%LA6CXR+Ie$WgP$6H)*|7*b4GJ+W*3>)pSr(*Q=ZwW zzQLqdFzF#o`UaC;p|tI%O?m~BUA0p?0+SxXq;D|k6-;^vr}_qyUdp6baJr7&uZPe) zwn^V$;33%nWHq8_^ldDzj4NnoSq97$1dsHrp7_^ zj+aXK*s)zF-1KtWha3LmhmCi1PiOLI(nFZm=lk^yXXiO|C1r>0RNr9ID;#0&70KLI z&ta>o3H+$2Ju9H&;Uf{SN7K9z;^gWf6xg;zH*D~b~fk_KBgR^KR67E{@_PY z^anqIqCfZ#I0Gz8eOH04K+zw_I@%2&w#7<+Fc=j50k*}~7Et7b9iZq9#130z4$&VR zC%->)e}=PV&%!)(2>z?|THsHW|Fe^l&UX1f20_1tXI=k`o}t&C<}ZtDg_AYRX)E3#m6&FxQCahoU|fUIfOX)EQg1Gd-yHz4mKF8Op?r#lC5cQE-<$WYgr zufH*U-%a}GzpI>Vk^@te+?!LUYri|XJ$S>w(cj$KdFMCxW1|)!?R@GUz)s~flicf6 zPAhFYaHn#$Nq#oTdnLu=o8&-~Ty2t*P4cbD9;2jqc9VUDN#9}O%}sKkQ+e-P-`CBl zylRq@O?G_gc!z$}B3-Nc&k&9$r))Ex?u{Br^08Zrp zRqD(S=C_ThSw?vG);G(R0Wj3^Hx@!9}l*>-#MU%e4BuAd>@}Ey?pPdJqeo$3QhTP`%oseXC!&)I*v{xZo~=ZamK zNnc)4dU26AC*ky5i8GP-`ylf$Z~NM&$ni2C6M4T12sf^zx3q)1mu5vul>!^I9$&K z2nWylA@CyP|ILqU{$J`NXBtQxSx5hPHL(GZkc_x=Ld6C^IDZ|#gYt`=&vBK0N`S2I z*J;u-6Fu=|9l+1(em3{@egHasTlEaFcgM~kB{?l_tUOoZNZF3$=h-bRCI6YNx!)x$ z-!{P$U)C<^JnO6U>~Cm&q|)CPP_Q4s#1tx`9wX17YF3ZcQtu`%*&m=9e}yT3^?)Gj z2iJK8`v_#FOLcORq^Oj+TbQhg`b6bF*L4{?Dd;deePxxt;JG;oaTz+X#2ZK2!z%3^ zu4bOJ<6L&yhCa{MryAI8Bk5&b+5we*X~5U82Lg3hNGFE6R z)lOH2K}mSxr4X;L>q7QdC`XumPGlluGs(*(^S9`a;6IAGBB_qD9f<{HoDFgnj7?b= zA$nB=IFGYAE}=0NULa>4BqZeYN=-^j zlyZiIH6nbI3Ll@5O5-QlT|hpyx!;)ktMvWcyUqoXOy*$l74P^ z?C+Y1ZN`(s*VlY|<%MaJBabe@plv&Vn#L8YLK3hDJ-|aRMzO($4Pa?~` z7}BX@Lj0bxNtM~}C_=&?-}1=Zw`c#lzQ)hB-&va6{b$R1OXYLR$!qpCzj;}ujbBxo zdsUlq8~BY=;iHF4e6#H45m(+2v+cFp@BQEdg#E^nx9oZ5a=h?IP~UT|AjqdN}_ zYTLTWhCX#W#4so8F5z2_HlEmN-}*O4z24&I{#8=G=l2}LgizOk?IS<@HRsidJ^#~x z`(wAZ-fvlbP)dZlq9$0C>#eCfe|pr{H?P}W>q+yOEz#<^XTGehwzztap7y27Cv60{lPlDe!&p74Rc)Gk6G;Js`dVUj%;yUjmPTTR~X^vK{;{I37fl zuqJ~QK+2%b=DZOM#lIY^0X_`Y1XqA{z(>IgKq+5G@HVg;I2-H%-VXKx7l8f1#o$12 z2`FnzmVraTJHe~LyTQ@mJs|toTl2s;(9J)Q(`3zxs9f^EOmH1I9$XJj1UG<_!HwXJ zptRp?@O6-*7Sx#m3qjh>y$n16J`d7n?#&===H3c^0?JtU0(=Xk?cDppqu>#c&$;^; zNL#v3fXBfa0hUFZx@&>Ifc3!>U}x}GFcSO?>;(q1M}HrX^*8Q;U`22QNL#z7fV8!H z8b}+vZvpFp4}c9ok@FjZlr3Km9L2&M(F=RqjLlm`JJF#B?qlzTDfAhBZ`(0B8`al- z>_s}rdmsN;8ouQ;+7&li8Xq?o7fJ_2;&$T>;i})F_e4zucacXP=)Hgc2A=)Ht?ZY| z0GWrg_wU~(Wt>I+xc&^9rMOMFNCwV4@|g$5Qa3;U-}tI#|Df$JlQB}(3L0GJ{;bz- zj2OMYTh}TK{*sbCoXQw}{{PR}*Lz{4^!u6bbLVufZ<^Da=I$oh#x!>~$vjTy^d%(= znPeN2Y+#aYOfrm9*}x>Lm}HWYk_}9AeLw&Ii$Ih~*X zFTMQ(KW2JpnV=tVh4(YmxIGWn05_5V^G!t8ze;rw#H2}z z8xJGzt}1?OxLjS=Fj{Gw3JZW29u*cuoc`2R&J<_{iu&>tuQpZ)oBNO?=|H z&KsI|Kod{*$smyxT-#^1ofq)Z%RS#sUHL}jg-y_VHJ0#c;qm83Tsb79ZRYCji4~SH zR|@A|sO!6f@v+BpUO&7#>Y^I++I(=3^C(pKm7_M*i+p!t^H;WoJ+>reSZDK@*nd|U z-6V@U)rB~f#YN@e%`HjJ#)BG|9@Wp z_0>!=kE`$%$#I`odFASyJ4Ozv5#2ZT2>W1PD)I0B`pK8RuDD|E&g+K0_xtuHGwDd? zD;fPjr>$d_ZOcuW-=yt=;$?S}PNlTZly+*g1U2XSGe6&%fkCbtBD!*J(vcAdQ z$z*$OvUl=x7sYcId?M7@+sZozv%nd=HKSOXMZ@d6MPhdUfx z1oCsMc*a)X3jC7)Dx99@S(eNjCI716Qk-0u6R#TB6Kn+b0r{L+eZh`kKd?7QdE8Q_ z!5~iYxYvL<_cU+}I0w8Iq-<6!NSPE5yc|rx|0Kw~+`SP@0bc|Mf-;Xy1%=<0{U7Xg z9{bRhc=LMRoSrwI=gZ~&Q6A5i!z+rvI~{lT17#0}s2$Z6JyQpHU+?^O-mvls@BCK% zjhP=-`eFct^X-`q_j8s`T>xJr8+U`YaP!IE}K({(;#zu}i-TzZDP@la-no&tFRZ zj^aCf%}=6tD4#En_f!7BVr<7FBS}V{L1AA{lD+?}@csi^wU#_3?6ZO}`3X>Ai7HPO zFG9j9V;|lC)Ov?h;)I1s`L$oyy|UFYtcy-(T|v8w4x*h^h1$^8W#oU(TfmjYRTdA| z2kP1GnEbX6PfpDUZ|T$iJ;Mf4=mz=mE0f;VJ=pE8<4Bowo|W_UD$<^2y-MhG85Skg zHUnLS+h(9km(R9qmpvZ-D%%6UoGb$zvl~f^!a(&sN<7e@85pU zJO6o!iH}Kt@xP|0aLO$@)l-<{6O$Zb(rcLZkZ@{eY_cUNZGDGHe__&tl$8F$q))j_ z=_8gOJ^pfqeRT&fSoHL|!(l;?Z6Rtl zq)##FN1WOXoAxR&=|P<8HB9;ulRRP4FPLl?OnL{C{?Vj&INQ$jHR&%*>&i^)!A$GE z&h_j&#p!vp)*T#Yz9w_*Je*ujk<-QB43r7sWngWP38x$Nz1sT$mA!CsN?(BJ ztMmm|fFlU+0;Yk8#qOzKBsde4^rAoL1;tjQIf# zX0j75O25#UJbZ10Pp4yOfPSH~7=!z-zg-IiQlmeK|JNd$X9IwJjv}Mxlq@3|-A{whW zq7T@v(xh3wYruu`&%_BIo`pM;^8-ZoZb_adzQ2P<)=nmld~-$LD)o$*rs}EtjW8*1 zKHr}d#|%oBS2+J(D(=AiI_k7lmEJ<0U0hxJsI<{uabkK-%F2$J5SOO%lka~&6{l>z zJ%GI?{(9OV8<&GK%j{a8Q5oIELlbR%Mo01v3cEkw-+|``h25f_qx2a3R1|;qLTit% zB2-=?F6pMoWDw zR(p2A+6AM!eK75fiy!{6OT1;7_5wHQ3rzBxX&&rUzBS3KCf?g5$C~85l9KC8^4nh} zr1n0YtSo6Npt6aeqG>-nCADy zuD%G4T!q&=)MV@}8?L%IeDCW0nRBF#OWUq+GBc}C*Sk$?hClsjNO^jF!Mv!bKv9}hP*E_0J;TtD0np}dI+&YpxM>gg+hF#{6BkV z0%ue82k`qCYl9hENQ|h+5@YOQY&95+eQ7i^W?`7k%-EN%HKIax$|xmK39Tx!{G$|E ziqbzKDy0%7f93!Eo%`OrSse9h22=Nb9N)R;o_p`P=PvL3wsTlV_h1Z$T_JLT*$dKH zHpAd>7zIbbSjh2J-1;~u^2K;~1}2fLKD6>>ka%X}2J&QIS@?9BB_WT9^3$jT#h-$v zHJd?yi0(tp1>XubWL^9#L{B31qKwHkDE)}^_XAm%^NRk%>VsPSSvhY;{RfYS(tpVQ zyC^IAkGwpW##rg)LqE8S(XAM@zL;J;Jin2 zoj9GywxXO{+D_V9+E?-}v#9pX7!Oh1Dc|$+t=f`rsA|h{);VI-V?f^JWP8#1$TM(< zDqB;vhr~o!`?~cbZvO;#yGgs=t@bOO={XUd$4JtZbpw~vc{Jku8Fd~F)w*>K(RnoC zJXv%_PCbvbhfCja(b*nSzsu=6RC`=CeTQe)lvUSJ$Em~dE5yaHoFJ7a$!}W&o{&)I zJ&sGU9wL_>OJaR^vQ$8gE8fQ{TT$I(-13Z(YTtKgqqe>w9M64^qmz?aFUzwbZ8%ny z+sLyOZxRMRoQ66 zm)W(f@iATJSxHVowSP7Cuf)3|_g4IjMme81dFDowT>de2*`9r|o;%T{9ZT1()oUW< zB=5iOJb8^&-UsP<{`FmXFT3;nU3p~~ScYchIrXQTW9@rUU60C>?vHwYrL8SLBlkU$ z@1?Y#m2b8GpYc)3_}p(UEN8I#NYXY{)Ea#RRaY}cJtNNN-rfGzxm-Fvse@I%N~U}1 z(ha|^j#Y|war-d2%Da#0x~Fa*CRZ8PH%{)8Jgb-U36t2eZR$Lh5160xIx@rU=agIb zr!(z(n-+{n%~cU%A2cgE9qA*b5E3cmr>oN;>2$g}-I7j+)Sr*2k7L@Qm-fXSyK7d38mB(p z_hM6oR-H~rr~Aq4IvbsCMyJ!&>1HaomiFAgBx>c(+UI)A|9IYPub-cyJw4Ugc&dxN zRyrP??kcBrKRO+cPM56Hp?a!I_Efj3(=qFGt~%S1PWPU5U>HXEI%HaAagWoPKu3?f;28B6DLgnqJgDMLxJ zM4%HC->+yWeM@8s71I_2MUG>CQ)B|s{oV%A=PKQB5^T$Q3cMT2esaE%BulSi>1pJA z-sCA|1$>xtqPtlL?}Uq;`#%mlvAzs;hsz=QY2yjl7d{E4&MRR!d| zb&{ngv943jFS?nEBw603oN$Y?d>{U{^cIF8x)3Q}7zUGMX-v72P<-%2=Yt;HtONt0 z$dv4(=3}M}O!U#p_l|us`QFV_eRWIsoV7l<7^M5&N&VN7EScMq+ogOd@>Y;!IZk=G zmJ?9waT5B$uVD>%3Zln0zJ)#DPf*(Je-M4W8e5cmX5?cmQ1tU^EYV32owzv#7J;*1 z377_DOwn~vj{6#vu|>B+8C!H0yal@2-ICX=dyw@yOH)psGdZ5Cyd_Uqx{0jiD>%!` z`MzR5(Z{=d5=B3+^GD3+i+CkJ#BkH?gBVH!{FyOIFXwycso&ub=;VEp97c6gAgK>2 zl{Ay|3@N9^j`Q?4#nW$*uCHj@|HDont-#p8cSzs3RNAf29r~@oSHSXvhw%69_;`7o%NAE+tsxHCk?>eVoj-^fC63z9Rh_7cVaQ zYWe@?h57%+mUNH*w=2K(L>vHRNSjEt$}y&i@)0KnJw>j_vb9Iohpv@EV8ehH$nYwkVknGyS!+*2#hJs+RkEA$1K=Hn9^eIR-1@f;a!^sey}zLgi7h3>Vog_Tlk z*lyG{xSn07v65{rJC&<_{G8=8BZHmF-4?mpKG?0)JC(70Iy;~rr7KC+pw^P-Vd7K8L5g%dYLNcD5U_+HM#h*t*Z@;JZJe_`D7rT*D_B@>|r<2)o zO4icpR&r`?NnMOaZxp6Jj!w%Oe75uRLi-j!@=WNJ$4Jx3U^?ARPRU?7WzW;;P(0O@ znAXvKJBEzfnB9MX^&kv;HoF&A^6$vhX`^={iakNw7HsKcm5^5p&3^(S=w z08hUQ_Iv)<#*WVIv6MWOb9CQvotz`@?I3x#n8cFTRo;DN-!2NpCM-*Y^SwpIW6Jjh zx%_Y2|Ldx_h-+v6U*kN#T<4K2->J8`KC&~}|E)NW+_V2@)IDddPdjJ()16S?&9&6+ zqO<-d_*=@0o?`_`mgAJG2-$Ys+5bB^{T$@CBI|Wt&i+5lS-$*b%4fCzdxdksj7cP8 z5s7|2ZDih@!>Ss;5p7AKq>Og|&8#0L+4ld)odbF1b>B3d&caijj;AuJr#c{=?5fiZ zc`DQDbV)i{QRhpplOa9zG1uwfbUxZTSybn{ol`QZPG_W(U3I!7+x~COA*_?_b-E{= zt|X^)PqzJk={sex@k!rr8p*c*Te54$KA3I)=fU^~FJ4^R)w2JmL`EdUT<7us6H2=6 z|3A>Tl0^bbMXsnzs*jD(blM2j^^oVXi#xK|#U;+$Dr?!mEt`K#VsdxX~nZzHqZd44HW-m(zcgtH}R+V$ax;AM@agyDye-jOK6<~1BkDL;_MPxj z$F=61wCbmBojQ-yt%lkz<2G1+Bem4}Kvma44u`Q^tyd;4;f8EuQOY<3GLD05EXFJQ z4!C_QesTK_po*1tE#Ui;J5NFbRNkxV+{$kPPhj`6F3({Xhx<8nJ?mNhAtYa(gRJj> zaYff}`0=OKTp_eJ8(RD8v|;|dNexP0L^eHX2r{OsBf_+aLg-07)4Nhhc3^hTcQhispR zJ6m-K&$+k}oqotu9|li-6|R*}g3gz~Q`@7?W@XzXuTPug8TxA?6I$|{B`1m;B5vc= zNV0^pS!BmZC}pFd?3YBcWC#@>s(cp27nSX5!Kv1iWB9|{U;yj@kww*blH$XFzkxx= z*!&t2$7+5D#g_r`!Dt0VcheS%Tqm|OIWIr0&OWBqXO;S9^i2q)9B!p*|Fh8LYf$lN z$`erhXJScb;;?YF=e8)9#`kL~*Y~97^IN3igD{!2l=Lde$5GF3;aH)2L8029shrI=2Eil|G5+YZ`=Q`P5i%Y|7Q$3 zoa)Y!W`oV7GwX0v@)27v-;( z{eMJKa%@7X~L=+<|vq=?5bXAQ{Z^R#bk=Sa@80Yn1JIydJ9%Wp1 zajTpagDKFC?#vf&OG7Q?jn z1D)q84L7P|*Hg!|%4Ck~r`pCIRpzD)WwOWGk5Of=Y*Sw9ER!|XUhKhBNK;7oTxbJ;7UJ-cMEOJ=myo)yI$i`+}G z)rwwD7H3Sn>wcyO#b>>*t}&nk)Ax~ax-WMRt+Arzo>|8(&H=hftw7vbPxwU%WFQD_G zzTV=^bINC5XM62mU)n9GTT+=jBab(pKC8oP_ns@zn?8xZsSZJVs++x~AG zC;ANi93LkGkrL?p*Xr-ZgoNR3X8 zkB*9sNR1919+{e$7?%Y%D+=GOo02xEJw{MP+mtrU1* zMD0!6d{-?Q)U&x^==xVWAKHIv|7u~N^bc=-eEM(Yr@q&2@P>p&sTI#GW-OFil3%22 zz~}G2-0;;`O5QZY*z{&s?7OP}xwFXVF9Hj_;oY=J{}Ys<{Uqi{FvqiKOCJ8s;=Lq^G$sX$1d8_yJ3;JQy+Qx%iDwB8G5QOK3C^e z{)(80lO;CwO?jwK_c9?J!s%>GzeCE;KK1;Yr*2p=Yv+(2pIAO}x-ro2B&x#4k#_d{ zTSX66?6zRhi|cZB+#X#lb-qS&-kD3{Cw|tX_NYZ`TkVS7llCEF@u>VeVuyHtHRSUa z>!yS_=EaU{g+8jLlwZ?v_wgZ-KB@g~d;iC(KNcS5xt>brOZjipQ+evcuk+RS)F)r3 zC)D}s>tY9VF#^}hw?C)GE%bDJ!p-zYg6L~s&oaa0>5QvN3dWCTDd|;GAbvb^`CXU` z?Zs{Zy9MkPuv_5zX@RR~|Ic9kH;lg{``==C`&Ok1%Qco*i?Fchgopug(P2r^$&t|s zsbLbXj$O8}@7rbQHzr0VN5@$6B^M{J3Wnd{klx*Ubd%Wn!oIU86Vf9jtWB%n;MT3$ zbPQ|PxmWvcT{^ptA>($3^px^pr~$=p9PB%TycUKPL(i1dYLWO~S#BgXW@TwTnM1=2 z8yKA$W?gugszjKj1^L6Vz+E=luh2o*HrndD>!WbZDI0Aqo$m4lkhp5v{=yVM_o#VgFM*D(_ zw_kGpm($-5uKB++!#^nh+>e)@$^9|DZQJd?+n#3io!s%M`RP+tlgJ|rUF=ZA+7 z@Y||yi|M=`@%PW}|KFangH*ZW>G1&8e$_Jh|660si9dgIvYbm|2gLv1Dr=34C*#va zt7Dx_j|Gr(icb4m9sXN<{4A+>MU^g2kqKpS7tYshj;l`DjAx#UrZuqP-&M|)7nPVmD_%J!!5UA_eUBx6 zLGFcIXBUTc|0J&u>s3{rb#F4pE|e?41{P^QR9HqaSz$S?>g#$I(?b{3eNG>9k#ZSh z7p#4Xk=MdE>+|O-7nFYNV(HHe<6AnP87sa)>gzg|Ys|_k$9%Zw56rE$&l>w6*Vox` z`L^$TnYL$tb&W3lo5V=y#vQY5oUb=-`BcY1>v|QPo>%Lh!-=hi2*Q!q4(d#bEzvqkNlcullTPV(?ub_NuW`{M~p5W7GNwNN~FK$ut zP&>oW`3!mLv*oFtEw_EVbb2IPw*G6fwWoF{Pkpd-_Lmko>H9e1FAb``qf(boc9owp z`a(8jGp{^=cLyjZ*#gWXXbUpiC1=28oJvHMWYQ?=G@2wb?od)PNzNyAHS&dpCB-HV;4gd% zTKNWXzCzDR{YEgFd_LnQa=Rnb4KyK|*^48;`mxQDX=9NYoA}0BWsJMZ%Dd$rGrhS}uTq}!1xdJptK~Cw9_2G(wX0K{ z&D?I5?CHlIR{7%TvGvj}db!^%d*;M7GFG~}rnA&Td^9|jU39YJ^)|+GUYAjHvWTa$ z#kj802RYH-Z*TKiCqq6o25f8i!~%>6p2msfb(upa9h)!pt^FP<*-2y)Lxh-_@Cc5!wa(kSUYZZrb zhW^fZlGO*c`o>vh$2!PN(qBd`Y|U_lrUnS0krfaPEcyaf)2()S+$GcT#k-Ddd&Sm*UkKM&e9K2_FvpIr*P^zl|Tq? zOJ5qD7OBAsI(c6wN9*)ac}4G(Q~D*H9_d=?i_Xx$d4^>5#jHNzEQ}b^ z&s$28#Sghp`iuDTnX{okoD2KHWw0K68R9Q&z6t3+ncHD2_yKGU_roCg2^2Z_6zmLt zgdzw31iL|zXM4b3VNduQ>;;*+SJ`5}V%=r8{3p-hH3+#g@nqD_ekc}_Xiy)=!{5#A zStN4b@1@_L_TOS(b=pMCh{|t&GICJ&F5SYTM}#-*{Y9k-hH*;e&z(2C*zlK@w7zhp z*H2-mk5=IRHId`27`m|Ng(ri$l>`G<|Cwv z&&aZlPnmib(_=x|*2|261u@_M|6=x3^B(a&5( z`G0uE0RXO7|NlozT4Vp&W1}be=k&bP7gXOX=8Km1ztHdKeRrHMxM$&mMZFC}C+q5D zQQdb?Cv)m#VBOeKo{n{;vngIHnKq|nSDkFElU;SP?ko%eK8}J$fo?ZF{%?-2_f&S( z$-wp)=zndDPMs|0sZWM(EcLuHHo7gl{yXFAx6z+<$$~oj<23q*8SRfN7UF|QXV?eF z+~%Y>QWQp583;YxWd3X9rwyb~anL2rBKb_lwoBSWI!-D*1&2aX6lpSP2k9&+XsR`5 zbJPQj4@fFJjr}nA{*fQ6k7J)>-?IA(PibFj@6P=-mp9m;AG=4_x6u8z>G~GB-*TOd znA>{mocfK|{g&%~vt6=db>+AE@3sGb>XaS-jQwBaMico_?EYTiyhAW;B=6HGY;dG) zBp=?fsL_mH!M5{bSRZQ`Z;*D8X0q)d@8PR3g!gYOX$@&1@8M?N!*Wk@Jl@45-ovw` z#;h;pJ={#%LpuH#`|%!{Bp=?pYNQ^dDAEejHd0~U#Q@SYQeED~P>!(z?k5HDUWy~e zHqw>m>kZ`F5t>E5#fy3UVSKWraU`3{fMV>rl;~`PR*UAvu*17W;*?XPJYwL zV>FFF|p4!rnV$ASy zynn-{Dvyj`^vn9OEhjfxa|#35O${Xf@b*6c{VnC~5$%2r-o9$;mB!%G&FzreHcy=m zS!WB?*_P)wRM*>dYyZc#r4E{3qrrl&&o5tV81Jh5C+?4n@+}-&;y|NArLRt$u+Fzj z=L@#(cB%iwS*QAk_U*HLd&?V3zqaSTNNli;C4cI~ef!}H>bjOa@y_v4RjM_9CL*EB z-M@Xk+jF1#J@gI#NMCRzUBMfR|GvIp7sr^4e4^7C9AWz(=?#`5lep#}_`A>c8QSC- zQlRp!%p3N9m)$Z1*)n*gp_M(awcHt;_Sa=kxyP>e-M0TXI@a||`qkCt`!=E6g-7mw z_1KQ#K~;i_hm5!xT^Y~sd6I4aSFz5v{r~FB|2I5kL{f5sGXUUvwf`?D>GuEM=Jfxk zduWKB1ToAwLHz#@YP>o#OkGfHLTXG{WLO;ABqqN~LGk}5d_6W{AX&=yzJtTHPgUi+ zkEll(*PH~FZ@+cSis~3L|DeOLCQ5W2L&h+*%9K}S_Lq_}NkksRCd4FK=aDh{tTJWQ zd91PBB9i17GOk+}w)07FmT?eS(AGCxZL`J_%sO^~FWbs379XKv=`r>Tshh+J(AB!! z638jkyz_xj+Cs$yINL&E1%k+z>+j;Qu3zS;4`E%dxr@Vn&63}Te7Vjp4)=A+F~Z50 zYwO~$u1(?%n!4s=D8NRR3RL7K`2)5n$91dg$av2NMaMB?gcOnc)|@honZWD}?wAU> zZ`OWt-&*FCW)?<(=e_oyA za?e6AW$smF;?zEJ->qZRSL?wz|5aaN-8Z?mtj|iuXTjRfdKPBU77~wgx#vcn{fuQ7 zI?FQ1gi%KQUpq>LXKBo2uzWmLW7j#*<}Nc~dPmSlzpjgZ$! zT?4O~@s2u1gmc|}O|JMA*I198d3Gepb1Bc#WtQ~kGKr0Hue&(h_gbE{k>p?Qc{Rz; z`n*mf?{d$pwBO~PS81z^&#OGce&k8pxngEyyo@dCdae4oVrc#eddQs8H|q46p4zZ< zHo*1)W~B13&6Mj&3o_zpqoLx6k>&v0Fra`BN)ae^_bL8su zhdHI6)ae^_`bk?48N6@NYQxAWJ*3XQ;Au>TPH(BxPwMnnw%*e6TgvPD4V|B^&L8&- zU8Tk(OSVyQGsfopmQ03fS1rW7m?EQLCY8^Cf%#L7w@;^DjoBc5FsuJ+$p*5&4|y|5 zvW%m=$P2htn9bot*cYODG$WymH#iv1fXVO?I0nvvlr`o;+$&Vv0A&nZE>x^f8eG9T zuci4NTmvPB=LIOT$t&<6>;E)8>mKxRKad6t4o!$ijU65x8EV`A=OlmmlwZS1Y zK1VQ@ZU49J|F-?#F}-Hz6JFyB4=sE1M|ZaB5RTtXp!8?6$K>aBKi#(fTjPQ2`q#St zxZUs0*?zaKf353B+xCCk{=co$;VlKWwtu8TMf#RGX#aQFj&=UZ8EwW{eUyK|HlNW? zIn8wYC};FfzLIaU4A^}+|74eMa%r~zk$zv!N zsm>;^o`IvbeI)}`|W*U8E`Wt-8-h&owN=PU22O(m|T zymxCl?mj*w(kHdwZSVhB^~b`)7(1tt6BwMQ*l+iF+rp0p3~rBeBK#18TP zYRKm;)=dd<%!?h@ihj7t4_NP2;_&L#W#UI~KX!J@0hH{^Req=21C||W@ma_I9oBm_ zec=#_cb$*8&gWZaBhlHM^2*pyp2j}ud_X;oW%AT!<7teX&evb3Blk2GE~k7@JoPnM zOaH=U+X+f=Xvh8DgE46=vA%yM-rf~!?=$(Y$Jt*g#{Sml4*k~PasRjL{u1!X-d_6O zPTe=r)87W&Z?Ntgs{3u${l@5in{~fEp8huLzOA}%WlsIJ>3(~1>Nm!=|Nph$B;B`6 z*B8q1-LE(M|FzPyUPbvoJ~}=! zX;fIsbtC^TMgFhj^c!E}^z}znRCE1}fFIt-e-DZuwdtz6@{i81eEg$Q#BaGQe&OOL zZj}o)YT{KAV&qdk%N_7}9-;R4pQ zN~+_wPp@wQqXKgTh%3Fz$NDkasuuwPvi@i136OT`;;`DO0zS|34olted1j7vcN>U5 zbRhY1oorLrdAV2tmrwMS^ffu9m(hKzb@~_Gw>r1=GP$jPc~|LK4t(NM<9KSv`yL7T zaNLQn=kXxw^dLHYM{escbowcs{z9kk@U-u$lgD&@QQa67y1r;m$!|H;=d|@BSB{m} z_4#vKKcX9}MyEINRPU_oqw4yi*PEV2r$_d5UY6X}FY9DgU7uMetLl7dgYOVMUGv@3 z9$MU_@*#ysz6kiCaxE1JpXpE4eKGWE#zm^V4E2V?}8Dq1x$v4Q2LwfV`kJB>BeZho^(Y% zsnUtG7rO=Q7RZY&a24hM$fRLmQL!mWe_Q@9X?Xi?Ez5TknLVG86q^v6iu{^0J^^XS zxvp69BTk*b3O;d!>KYHh#`58RQt1T3!eUb*!Xk!8#KuJoh>H$$)}w{*d(^G4(I%v4 z`?f0fIoA1!oTm0mRCzc~-{AuG4sdMrdd#jq=Hw-;w^$o9;k5J{-a$oi@iCVd{_PHMO zKb|++>*uHFFnTJ(>2z1Qt)tTEW^!A1rIYzQ)nVxDkhv`j>gNoo+9ubaFafwN59U+je75eUm)(LCS4inoeit zsSfN6eUTl~AyNGpd^_l*_>rWa^oHcKv_$5YzGX*PA9jVkU>`UO(zP=8z!-Q6;tHkW zhGnk$8#vZbD09}+Z&GvA4~I2b9|;>mhKD!rf)n69a3U1D&r}!&(Qla2Kb-~%lQ0O8 zFh{|ea1wk7O279}xQ+A6{Pk(b{F_OKNoPso-?D2feL7Bhk>t&I_LE76=ixgtnlb3F zBj1+7!yLKplV;oh@4I2_GQ;?+mh@Xbt@l8UO|NB)Px7>1D(_Kal5PLD=7h+}I4dvO z^(y)QGe}r+A~(yQ!gl5Oj#ZX1B28!ArIsyxpT$mnxiS8% zvPG5rD&N?L)xJ#~h0y>$$N9-I3$t#Gea2XTd{r&kSX$wd+D}GKYvs$S zoONjHD8me~WB78*aY}In*KtJFmO7!Kjz~!ji;qaPj#rX$;u|nS9q%qjO-Fu?*}}IC z*JW_dh~$XK)ac|CS(CDa$QjS8vNMcYMt60dCFJ!|_4Rd@aTrb1dN6W%Rh74dy14QR z8MmwJvg%`1MULHpdfcP-Ysh$;mY;+8N4Ty*+TtEnFYNze)|hV{*=LcePb*cIZmfT! z)*n^t9ogSh$1LF7?mnK}C+j+sB2u|XQFOSjF~8bpJANJu)qZk~B~@N=wa(ZbhM!vR zuhti5XlrTv$1<(E&XXD)pX5HrO=|yOMoz4M*>;ob#ci4;K0YF4h&qql!T_~jd*{0Q zdfeqlr~G$qf1H4dHJD>V*XhH)CJ zvt9gK7^hJ^n=ajov}qT|=;-7`(Y+N^@iWgbSB6gZ@Kl!2{dRh4pUUfg!#Z6vV{o%Gf(q{RiFLuhG&eXD8JxIJ4L2v)k#9eW&sZ zM$Y?sUhQw+s#9Xg#{t!U8Dbcojv=Shp?E5L>wL&{Iv1Vnt&_2Jx>}uXMW<`f=}>es zyiPZv(>3VkpwP`N+qHo_p8>zs9ayT{ocR0hD)#Y!rB4SU$Eo}YrKTpH{$ z&m`XJx!HzNG&Y#v)w`FO{HFJgXf^ZCTsi6M9Ya@w1? z*n8wSHHx=BIknI;KTW*&eVb>3W`582LFK*xo+F8KW7fGSmH7wOm%#e~jA@~|rZ z+eed!O!N0md&6tsf~ZqBZ^Qqyi5!2$(1k@WJQ>ubZ2viNP4-TB+A#L2@^_SezhUvW z*1ytXRk?aE7n<<_eH8V*y6Ny;+n2_F^+c%$3yrLM>+5w4;}@JId>n0jzbQ0knt$Kj ziT`~tzUMlQ(M(;}m^UZZx_Nb*cgM9`Ht^nj<-bM3Q0M*iVx>v%9et`~k?$%N*jOTI zoneeo`G@bkSTk7{=e15ptdoItajH6-jV^X(ZVhRl!0vI23p}tcwaS6fAD1ds z-rw?Xk0 zh)xQh7lXdGi9X9furNDA`jJYfH3~+uJ`Tpf2O+8fTm)Z* zE8xeF$HhDbUx431%9=mG4e%$(KIX4*AG`<;LPP~)3oHnE3{4-n9hPd7g@%@B#N6s#l8bYK#6W<0AL@D#`yN zB2&`E|La2je+q%=EZ1+#FW)>DS^xFMZJ#rY%6H0lb}$%Z&}`8W-|PV?u75 zf?p~!PXNg^U%hKQNEr)q+jRXr_06-$Kh)e_>=yXfw!l@C|FNN8U-ADdOS8&aQwD9Zl&0#H@0fpebAaNd)f!)pEq-z z=eht-Wqwa>ke=FNs}p$XXL>OT1E=_$J_Z=CTt^W@f-{L#zfZaOuzsMo?G z`2#K4+f!SnPFC01EOoX<)HC~hzB-$t&UUD?S?X+%I$NX82JER#_jU1k> z)qAl$|8uL4<$oyuxWLLM!kf(Fz0lc)bKCZr+cr*5ZIC+Kr_RQyvx(|td!0@foDF#?j_9T(t=13N=M2o;30&t>%$O*+zIE0y?uS&CsJlzt>#Ow$LJf^;X< zdQEr>>-FG`umijac7ZoT)b9B18D@W21&Yo?^c|x2xK?&XPi%~-$k;l)n(kfI>D6rg zSmZc;55b|!S?@W^=XX1(`q69d=(4)r>|&q2abf;Po#PMUee;NC?q+VbVxPLpR({ax={Ys;58 zJI9GGmPhBas*CZ_*?e{52zVOfql*>F>#;v;=#S(jc`q`d&U^Rv?cIC~cGukYUlv(d z`rUb{&u!cPFCVvT+y8l(?Zs|^YuEx;(f%*~{}HLz(fI$Xk^Noq|KB?8|F{+@`@ir5 zl(W;+xcR25?#ljN1;s9Qd}aT)?EJ2B-pU>?vHx?`exrzVFHJm*%Y3L(gdz$?C5ehV(m4I^`wcWRffyeFg48@m#VF?%^nmA=x z0p0_}ryv-zkD7-7KTwmHZANM`%%QLb90m!QGABSxKzYvRU?z4=JN|#uHs4iC2K8)? z{J~AVQvAPd|Nr~(|DuPKSeU$|i@cou|0>4+$6KTS|2^A(K_l4rIX-@8`BrTvnW`^U zd*#Z{KlIx8d!aAll2>*u%s1Ur|KObRXVv+S>ik4;Z8s**x5jYjdTX_hS0758DK?CM zs(-m{|F`|i-yYHK*Wm4|rurXZ%wrY9oqa5;oO&N^`+xl0ZI3ZtVG0(J}7EpXknz*V;YCyly}?Ef#ILvY#u)13ByhC){Mf1%j_eP*b+{>1(- zb`2V!S=ZFK-jn!wz|F?gnLPf@7w#MnGHsHp9*4@1u zB(C0W$7d{#AJ(i%i=P(_z$l&9<1^0CH#G<*?*&9qhdSKlYxw*TAqf7|~5#l|g1 z%eSmh=+crV4enX`oV7GwX0@q;+TwVD;F4`&n|E;nAME+l&!FC^x4O7!1N{XZE}6Wy+_ulVv?G3VAf zTruaH$^TvHDUL*!?bzjq&u=b0zRmAJ#bXllj-EpF-hm{mz1;0xfV=>bED}p5lvpyE zFQ68bST>1Klly}1+w_L6c!xL8+a}mC`}k#FKl&Nl{%`ANZ2e4j{fuq@xAil&erElH z@7_My@0IOm`h`4KX6c$V!&su`_M37kc2)Dq`DZ>(rzrCl#wKl(W+%NUl<|DfQQfp|<51Ju# z=EeB`>;H+dYiPHC-2!$C*ezhUfZYOi3)n4Sw}9OOb_>`okQZA(ynTuiU$EF<7&lB*~EW!hQG=EKK(!u%C{R% z0Z*%acVqW1%|4RnFpjA_{g?o*xP0qaH>hKE=U7jw{q|B{>sZ}09Lw$7ka->e>lky1 zEAuk$Vm}$LK*j}lNgZo5xp!c@kK`OJd>I#3<`HOL&9T zxURvqAG6>NkBE(n7!Vh&&e4(m&Z%>BW4#R5Uy+zMYc2uzxo2xMG^tjD;ER++^0U8`{l%HsPGM4L$)GT%UY8@l{I?D-|H z-kby7ls+(Z&o4%5v6xm*MwHzg-TmSPd;9`>&Vf?h{>|eTj92eP#Ky;~J@fSoT|X^S zbK`@hyYkV}jY~Vfq3G2QH{II*v2Ce?=GSPj;Oq0t2}XWbYqPs|jNCbp->a1j#_r>2e=>4V_b%PSqep}{?EOWh35Ib><bvVdU>L8c{AmyNH1GVP&huSYZ!BStFIoAa9;HX7+2c!Q9A8rW7k(gF{W`0kYa$3R z27z&$B#Ud#0XoJeV-nD_GR!IvA5OC-#MjoW3uW8_9&44~5eBo~75c$m@D|t)(l0W@ z;B7DpR)>S3_=hGz@eh3v`oo!!PmK926!rG@5ugQ|9=g+{Va9gOj@b> zH6@?i^h5g{EyJI0@K}M8zt`hqVcY*{9DA`_z-|G%1?(2ETflAsy9MkPuv@@x0lNk4 z7O-1@77+RWYTEzPCjj8Qe@6#U+$gN(oevJ_-MvRQ885Z4@2oP+o82QMtWB%n;MT3$ zbPQ|PxmWvcT^O-gY}tig@a0 zK4Tb1)=Qn!W#4~PopUw0cN$HMkSp5vvz}M%`>r})&c1K?F&M^Pb&fdYCm?)Fp&Zo^F|o-2}sGVX#Od6!uNIV|V*^%Y&T+z)K; z>V8xpPxR90oh7e(?C9wBR~l!)w%=br;}3kO^m#AcyL!%ls>jX<8+UX6&!YT~+V*?f ze*f>b-`nFu+T#z{;}6*551gS-BQ|ZT-)8k!O*-=B$dkUSEE(i%p zzh{glyfO{5Hk5e>7@Ntc3>!fy*8z%MJp@*P-J#g?#ja1k$_#}Z%N!16+^3O{W0?ye z{V{VX^oMCs?D?x;W0=v7-;DLw$-fJ}30uIm@c6xk5jqH;Tn>7XM?=iOk$nnGZ}vY(jL-rQt2riixfqg zOxi&@OA4Bbe*`HCpPIR(!qeD3-7q$gf^kw&y9U#y9MkPuv@@x0lNk47O-2uZUMUm>=v+Fz;1!O z)dC{_Umg2@Qc~!kh=i!P=wwR+VA=m2;ppSA;2Or=UB!}Xu~Teha$-tiOsZe?ZZ-V6 zB&Ej2$BvFo80gm~F+M4lLnwQHr*i1pvYY$Ede!@5e*m%lAK-K@+y7TiRa<>(P>>`# z(KBVx^RWT#URY#ATwFr*2sDzG?O*K54kHD#vaGlAZO{I1tFkrJy7&TE`xa5Y0v)I; zGodEP0i?XlEAW9TU(~ryOubsq_owaMQim=MR~?%8?oj&^cVAY{(Zu&7=enF*;?SEq z$2l0APwIkR(gIQUEbQ~GDsP6xCd8&Dg$;_1;6Lk*S=XGOhH)6t3B%&zRGsA-t$hls zIy(=S73ns5IiDP(i^DpGD>nXBHt1qXKdU7%ke}9jpvI=xwsktZrNCBej^#L%)IN@Y z^Yj<;HonXBd6vzUw6BlcjBy5{X_fqS-!pH zjiq1Pb6+I7;0BUEq14pG)4$9*@o>2g$Ab4QV$RC0DnH=2x&t%YI-99>c&ur3pKm_! z=}`aumFt$iQzpM*bR-zh$B})k@)Q1&pY+M?A>Z8EbLqXmRtkCggZuB+$NDZ*$9Z>L z!GQ&rFZ`zOqP3HsUHd^F!{|_5j?*n>`S*3|^!7O)ICg94W-nJT3|(ySm%MvEj-WT2 zogTS)MxAwY0zdwF%3GiDW;d4nsS}e=dEYap-PYrYC!==uYpI{ZE1$YAGnd3q{H#gs zQH$2L+7-Je?L)&z?Ip)4TXWE*m3=4n-}%Ypdk2nKKs`N;t@Umy$JyuDx9q;cQ`(o> zyK{fdhgCgy z78(6TV4*j>n>KOz2Gk^w(#P@bOO>kJb8+&<(fub@{3IoQkzu^7%8ydQ+@SGr^v$5ej*LT@h~TC-5nH_t`Zf4y_|7n1Q|)=Pcf%rcr#|xXm$wJMGxSv7r-}Vi@5S@I)|cD6GNWzuarKpAdd?sIZf?&ak^6ox{rpzAuLEYavbw{teF#nz}j!&AtzHgy8(=dKj zJG{O2fVa0}=TrILO>k6uJ!WsCJLbn8t@rZuC$Q70_wJ6^A>LmN z`MkxtDItz|vEy1{$5Q2sZ7O#1n^#B8d^%)H?fj|U7qJtn`~K{fr)KSa@VE74&Q;jA zG^Wit!|1Q-6VxrK%$>?Q zrH)_FDA4Vu$1}z%PrpO1clN30-#m50idj2{^!Q{=Liujk;Z!?!t@Px5FMg6S_P(}i z&n}yyqi4-OImBy4SnWCCtNEdPUwz;D#5_7D`OByL8jfr~=E}YVx>)-2>N#8y6LGS{ zroJf;_32(Fq(k@_=Cx@k^-Mc^{;i@1D|TD3=*4wk`WBdk9npIJs|~m@pmlfe28pY; zM-_bxo1)xf-qWXxZx1e*Kjb#w4kOo?qYhv{tReZQj|>R^Ipw`CR|i!sGq?U{M-1a$ zmEXGGtCa!|jHtb7oA0V6gL*bMjMeJ7J^1~MFY69^>-lZPm(DubZs17llB#@Q_qfFc z9$1%J<-q8VOO-0mZ^C|+zq07QNBgfhSfKBQ>c8K3tM^vJ7@+E(^wJHb8*aU6ZG~=k zwtTh3rFh;`)&2tqwj4hGtp-n4`Ogn8J=7+i-<_xLl6sDRX75i6!e6Wr{mt8V^ei;v zaqf#M-+cG9hZZ-<7<*rlbNe_P(`$A<;WfVS(6TpwbZ4s$;q>;@`;~o+gXh%u=fP>o zFP7@?%6E+hAFkA^+G2hmN2%j@&tJQ--)sJ__a5JAPtTdt`y0k{D!;^IK}{ByX?A4L zs(bn_=)9(#eyoHQ>N)wj;+H`q2m8%?eDzP`o+#Jx7wp99e%14vIBwF8ly(aihcD?+ zzYOiKn=AQ@p<>IOeLchAu{WyIzoMHXG3sjJF))kp*A!S5a{J9{@IlC9X-tE>?u>tA zm~uR-=ImEleKa{9O>W3OvQ(y=&<_@ZRp6^oY~~@@j4x+5&uTNzXfGecJ~?48_u;}W zXET=z&1g5T#f6IPd?e?cMS7jO^EhR)|L3Lo4*aD3Ci8rAgKhgiH`8A7Obd8X(*(oe zD;17u8ag00AtE_8IwiDyLTYq!d~{T7L~3;C@W|A}#JH5u$mGwjxQd}>(YfWe^=De1XIQypRdT9vm#+~yB1$S76_sAIHr;xJCMBk%TBnasHKIpGJBwIV zAKAE}v%140wN+$@wa{w>5Ab z+s~cX(3RKQo!7{f7w*n$EO~OSk?y>(h^WECQd0ftDO%gcX4_Ve-iK9pGuyVt>Y65J z%de|+8fV!roV2Nz^e^t6?l|gKqum`XW)FGit8E?28OGPQN&c}RX~CtIz0sq0&qB$O zPkm8>-_F}5e{-FZRmV@NRAlABrCs+_Yd@9#waS0t;`v*)Ev!6b)?M9ej1HTLubKQV zH|Cyhw(f!PG3&ClCDkI|2ht@qh5YWDrJ($#-3VL2@(^*?tOx_49}I%G!1nM~*a32S zqa&mnrN+{cenBVJrCkw6On=w|(hW6wLb^`|mu@zLp^$SKbcf79h`3|6hGCGdkhGI| z4~&4E%NPJTHlsfpW*0aZc7sD;cgP!Oat&xB&9ExfsrckHdK|4bF#8Lduvc;X=3yE`rZN_EEluOW-=zm%^9fWAIhD0=@y+ z*W3)Bh1($enmge0@ICkf`~a?nAHo;mKFBf6kKlS(7;d1Su#03bb_>`oV7GwX0(J}7 zEnv5R-2!$CT&ouF;>1@${zs0^JoaCH&buf5qW`@7|KK&0|6LcM6aduSr2{C8Ky*1B zfKNW_0!7A=MJPIe&CQj}?mV3MDirYDW93ES-yoLvsIa)i#H6qR(F0=>lsx^NwSDM_ z#AN5TXwlH9ZH~Lt@iJ_)_7h!zzqKtnI(1lbf>Yub`Mg1)J$~Qwt)y(VTpdr5hnT2}O1;1zW+g5V_VY z2iw9*5c$^hgCbK`g(6eSaXP^2Fc{W^B16}K$h%6WM(Lzv>TWQA{2owbX_2k(g2=r} zX6_3qt7L4-C>fhPC1Z;$EHZXDjDV3)WNVRy`CG}t(J-EM^30)d5KMuC;Rq-)_h^W& zM#;pKHBHtNA@Z}5#V14dF_D{%k#HIu1(Amh_Ej?GMdZuUBOHcp|G)Cs+P3}Qw*T)M z{dva=2ZM$$;$vXj|84vKe*gaj&h0dL_SE0?W9i%Wf7||lF33HX%^7}s>2nx;oW7Rz z`8y}<|1+J(E9^X8eprnpOJ#oRg?_LQtO7+}EjIJX{Qi4|8%7!(gywV(f=Sy*QFIV| z=%>CxI=B!&f$`|^Noz<;*=I8f_%ss_)d{RmqK`@np~K;cT|49fbmpY}q#!yc+fd-2 zB?Y3upGi7QI!}rdMLuZ_=iNqnox0Q4%G36LF2P>x7RYlg;6;tEg8VP`?xayp$A203 zPrhe=MgG6m_J1xSll^})!dyn#Uu5nZMoY|q(J66wboY4T2E?c@`IWQg*R%3dM`bQg zaaF!~*7E*V{>UulIgBdbDQkItjO4tNvXtjA>3#}p3$Vfxoq?jG2pOsBWZgHmi;qC6 zGmkr2w{Ap)%A1`r5207eEz6h}VdZVenCCp+4tHL<-@_;FymY^ZlNs_FIQRX*otN$l z;bmQ?JZZ`oLh9n<&QpF3(jMjA?a_KvYIKTtA4q=1Z28tTZnoN0j;nkgr0h9&-pKfP zReg1gl4GoPqb&LA5>)=3netVYReoTmd{u3gACxIyRbAyjo+)3sWvKkMnetUNRsP$V z@|Amr%HN+Uzll6@D*uR;FVAkhMq%~kQBn7_=veEz;uD9b->bSA@?7_&tvfIM{`GR_ zrQfSCcV7Cv8syGP_dyx!&P(?}ndQz)_d!W>=c$X4d-S0@FVj8xF;l+#9(j*TzedWt z?~z}oeD^)NJyX8>9*xVC@4iQ~GUdDPQCg;a_dR+(Q@(YNL_a6jHZbeEj`B+KA8|j! z>f0mzQOTc}wLCXW@>gUjFFG*Ee>!V<=R5LTmhy7nMGtxltgE)AfA-XIHf1T#VO0L! zEcxj9RQ~BK`Hh|V=d<>IfRdV6!|{XA)5ZHa0n~~MUN+XO3~w0fCpRX6)Wy6b9wu7@F?apMsf1!uv5a5jvEb0F8Id~UcF<#WR|D4!eZ ztbA@npSgf?h#ku3M)cl`Sf?(^=Z13|;&a0}mCwx#_!#RC!N(!zG?u}+Fb&R!%i&_U z5>nQ929js2g5)V5oM+)$)}MzjLjG1hI2+)4)?b1AZEl1w!MEVca5H3^^6hyOzQa1( z%$;x(+yytoJ#Yuy57}mZ4Bv%^;QR0}+zpRG%9^L(hwwDq3j-X6@fB;uokd*QDz9A1Et@P9B0{sv>< z?=Ti#f^m=ziy05|!J#leOod($b+ST zi^Dn42hNASa0x64ABUyja#$KZ4a>l1VOjVbyb(SR%flC81-Jp;1Ydy_;j6F`d;?a7 zo1q`v3ah|(;4Sc7SQWkpZ-u+zZEzpF9exa}!%txi_+NMj{2bPT$6#%Uh;Gz@-@-fL z_pmNJ3+uu2kQhVrf3QBh2phoPVMCZNANCDc0P-xDMPL)?4V%JZkY~g6g?GWyumvm! zc~;DuU?8jvTfwT3XUDt^wt=_9cCaSA8`gn5OQt^zf(>DN*c5hvEg;XB*$M{3*03|Y z8}h7~9bpLU476l$ zjE2);415Rh`+Hg0l2lv1R@I%-X?u9KO?||6`?uYll127nV1iM1s4YNBu1bf3z;JuJ{#k>z5 zff4X1jD}ypBzO|0!mr^-_zfHjPr>^k?~pkGeh;U>AK(Md9dS3uqka}}%zpMy8U7hxs10rJk6uRuTeF02jrLf#ScAiNWP3LC)xLf#eg z2y6t8L41MDFJTk-6>JJm!DjF@#H4Bd05P+gKSACt^Bimme}#eYH^{qYI=pyqp%-ie z3&FOq2y6$7LEb^r2i^lq!ys4|@-CX?VHbEa41twlFL(>=4R3>eV0G9R)`Ixn1EJR;JsZVk)9wy+Xx2mN3WtP0!1f1~}sF6|UVvhDx2{ojuN zx8wiq_v z#clz+1+GC0AX;7}`+rJwYTmd1%SB|e|L?%~k=g!l*}|gl7h7T{%J+yEKpVTp1sEv} z&T9HQJq*ZgU;s&Qk_Tu@SCy=Vh|5?$4C(wyz$^l<&5$mQZb_u8HHg?W=y7 z^4<2;TAA|Q_SMFj^4<2;=2m|9=v2$xZ`mxVzq>p)sh(sj8{~#e`E?t)@?XiEU*DC# zF>`)BSN>a>^XYL|$KRAGzg~Lz?V0lfT;+FW%CFndmA@-z`eL8fsrz2& z_rHEWKL3+Xv|ru<16)qpZ$r>#9a4LKX z(k(Qffz#kC@KN|WsgvmqH^LI|4OkjdH}gig72X85 z!JFZB=m&Sfs_=byJEYDgwn1eN#s;YD!PxwiJs2CGvIpM<_fZbpov|Nct24MZvpxI> zVvCb`zLcGpYc#R78UKaY)C{gw*>}H%k*t3Q2g1`3o0zg6V+&JuV{Bf^Zk!CyvwbA| z9~=W|6LTyqggs>{qz#n)wg{ZfdQrFt-T<+MDZB16Sd8^2U~!18M%hcn?pc%dUm(}6 z?4I@D@2rdc^AZ&MXa0Pa{j&gc**%+)@6CD(=mT3qUnq9XGO#Ty2WcZ^_Y`|(Mb?9$ zAEd36{WBO=W4$x14!giwFa%=bQTEDuQ0$cfQ0$f1c$A&83GB_fH_t~ZI@Fn@6(sJh zv6*(-19w2~m2Lm0o%pQV_J7&|+of&)rycq^-zRK`w*8;>z?Np)|7i!?{(t@2|LOi- z4f&r~_qgbUJTCt`FCvrtzlV-=M)}_*=Zmk9EYjzdMJRHrmuLEWV$WHvnJs zjA8$3TWxDwd_-)5wT-a<ZvJ)M1&}C5Lu| zB8PT{{H^?bgJBQWJ3*R9jfc<|c4NIiWSjB>?g=AU?*$_vWtE)S2O?7%?4#t&elVW( zd!hIPheBQnC9e*H_pv?#ioD8WYlOowkYlTH4hBGzbE5 z5EMD~VHgLIA(emiT*$eVJemZN5tUrK45qN22C0jZLx;nsSsw|J4V8Sm22v;UMK~6& zgX7^V@P1erzJVODpJXp~3)n4Sw}9OOb_>`oV7GwX0(J}JC_TanGZs9#%OKefG+uh@IOB7G^x4=b3@+q)2Qac7R-*|(BW(kGB|*%!Y+ zcA*}=z9CSqr;8&}$Y~m4eygdTtm2dp=W1W>ZKK1CgLq~0$J-H2ep3ZUR>6~S{xf`_nW zaMaCJs++^{U|nhd>~omv=5X|MZqs6Iem=ijC10H1dLjUSWoz4Pxj{C$RUfh4P6Z^;C5T&idU{GYw+0FSEZ z+H=!MLdZgZ&;tYsy@igjp&1~MPz43kA%QfKr5BefAV`re(gZ<4rHcyErHFutAE>Ax zC`eNg75G8^_ng_gS;7vu8Zdm{-Y1iH@7$TW)9;)zXW;015wZfJ6D9)@RX|R`GMyPf zT2G^FW<4Fb9=4y(2M9;$Yyna_9|Fq(cLFJ$-9SAZxsH@;(46^s4dE!AWk5;?Q@=SF zNV;*fR)ySyb>-;XNIEl;jG?TCa#%^=U?`Q5eXb}JDh9%mTX4RJG!~A|lH5ED?E^O) z0+Y#b*Wi}TMSDYV(gZFAE@S~-fW>i)8Fn!+4{U(jG8*qfBayP9|5(&1+!465Z~^1w z`H2a@v2gp~uEB+mhdlteoaak+-->V(kuDq^5@qj<$u7vlOqAg~DZLHRL?E1V|9|%W ze>YU!qoV%@*)Rae2A~#`_vrs$F;MDR&hQI&LFM3T0Y~EqvRIK4i18=syXfSs6jOf=Xgz+HjY4>ko}WuXeS>p zl(&j6(#S5W&NsPVoxvsq*&UE|RyDiM{w{yy8p@FY`Zu@e7u9!DMgOYKK337c!y3|e z`QAN|D!Mqg_DVWR|2{7ClqrzI zZ(w-Y2*0R7rC{p{3LO60-VI@Go5Z|)_`8uq=XaR!$0gWYgTjZucHoUE7c;&Z8``$P z&iYH+YL}riUzgJxAJcw#DX{ICh|lJ&f(<7254~NpPoYjTQlEP=|M9p5uN$%E zsZHTCzN{E^p+eUM&)z5<_4=XbTVt()LG7v3Nhs}>w@m(J_ zAN6tPi?-l#7t%H6+|$3-OKMneLfZ-bCt?0q@#R!}RHBzl!qG+RKe9LGg9RO}jTU2# z(*XWg;RxkARIX*|8Lj)P!qHV9!!>?5#wn9c;7z_NCeYdVTgOT1t> zy0E_E_(mYD^}>L(CbCCYI!aG&9)UUP0W@XsXwcwrxkXzVLH~M9fXy@q=*tMul}T{U z%UJ`DQw=;q`ajl`o)DLk$L0V3hY3)p|CiAuhwCt0aX8Wk9s$~SW?80Vqod<9P0=V- z?-WyX3Z4-yI}Fb?XfYEl-xkw>3|ortu{Tky<+y8b-_-CX)Bn&;KwJt>dIB5xxsmUQ z7a-#YDftE1*Jue-lfx7Vp!Y-BKRUyjZhM5;#_2BMbURw(RJkvYA)NEo)G!2P0_P)v zc7_x0AqjWHzo7i%i;$KO#joOLM$5AS^hjWf!NAxQQrf5TA#36q=Oc~dXK=bQ43g$B zsD9yJj_Nnma<7SYeDBWmKk++u4)Zc5-idB62p#}67wJ#jg1Zezd=E4H>|C_v z7VXu@Fc=t#jliV$uo%Co{UWslb5fBLJ?waP;ke18xG+NZ>j$Q+LE5(lq`TSqxecHhchp8A^XTPx9lf>6J*Z_QTrtv~-p-cg~O3mtcbX9uu~|7QVIdmBHIztiEoB z@%ZoKKKvSch^mnPcOUFLU94Gg&pWR)tozjJudu;LrN2_J0fiqwI`g9MQ^Q*AI-7nj zVgEBA5SoLq@YlLsyp=w@#{AR)jT<)oeO?^$`MAs1J8`>T9Qnf5ODDg5vT3E6I~Q*% z@f`Sob*Q{Um!y=q*x%c2Za!C|JbTkoIeKo%%T;C%VI_jFWFuadi~SugNXGjEeuL(zhs6gWC7TQ0vV2OTW+g4~YJE~Ww(l1fz+o|+U zRQe?<{X9qYOH_O)6`yoC&xg~)k3TbZM!wlg`!@-g_2MbWGgSH|C2LcCY7?t;_`z+Y zSN|fV{!=5YZA|XT)l_mal{_rBM6W}H3Pe}vQ zGe7tZhocLuIdc$jED%GG^n>*j~O4tA6-{ei!uPWgY^YP6m>w=Me5 z3hBnc?(+h_^(g!D4Dh^o-R2#?>R3SJq8;zd>Ach_|98s&N8C&={jpnoTJ?{g?ctRF z@A~}o?UQ?|#qHRGv$C+5%1d;kQ~tlXz#S~CbFSm>C;w02HPqji|I0O*WAgv-Oz0WJ zKsFEB{S@hv1E;+R-2^P;n+yRR2)7$9VJK*3=#u+`NZ0~*5H1wN#R(7s*MU)x{||>- z4cBvl5Zj+e8fNg%M?szhmoOUpRpD;IEx>|)J6seIC2;;AID+B2z$L&fgWC<~H6HJP zn*dky1%!vw&n_?_pWz?~CT~U9iFgN`5d_O*xRY?#;ZjfzGu#B^=NSEl?0ePLs;ip6y0km3SZeKc#(m`@lB~%H3$;IDb{OKVb;doxZczeDKVB zwcmewWcwpsCr<?yREwUtm4;JImvbyI$++b7zLR z)th^VfeEUTFRSFpD*lH`Z`D!xvPxd8l5?r##VYyNYGYlov)TR{abQmmAv?crj-Ai2VVTX#oz^F65sr6UVI+w z5nYzBW+P}7&>Qyl z!wFymdiPEQ=atfJZkP-F52y3qU(&~>e8FmZ^3X)mwGJ~RBOfI@PGyJmOBW)a}xahjn??IQ^$Ak3rb^C`Ctj`wGGaLnVw+=t;VRJ{NkPd$g zzwe%ZMq~|TG#Jc4$~W07B)xjDZY}q+eo3z$x+nMO1d~7257k?wmR)c6)48TNX2hX7 z!27Iqpz9ZJcJhrLs2A)g-$+Gws_1DIJ(^qmCr9~ADm^}xUY?5HRq5ZU=-orz={wRn zwCw@E#Va?KyS%i?>d9|C<2b)Z#cy!(d+z_8{kP~~NBKz)n{V{`lhhAKt~~ndoS3zh z5-;qi+|~2Nh3fTxZt;y&{2?bFNZRGgt^EWlK9JLn#J{UYqS}9;;@^`#0j+cCqCId% ztkFm>_$uxf!^yR#To2Rw%>cidaCBk8X)XdB2rLJLSl&4JS6zbDVK3()oF9tukg~dME9zm1&eg zn0svuQamb$4ATdDA4+h%j@Sb~mD4I=qc@QCUi zb_y-^F89@2_U)r=215qIP`yQJWMALFd;ab1v!*=S+h^@38XC%$A|43#tf2krKHcV? zXn*S&2{fQ^fepYHb)i{^vy8)=WtV}Us=vr^UUvJ2?K8a}=xv_;Oxi;9vhYr1F7Ekn ztv||V&ieC*pKbji`_}r?`5Z?OQAHQ3)_soZ!KmavDm|DLtk?Z^xAlQXSCmT`V!XEC zIiKN+U>7Nb=#NpsaYaL$clNEDzG_c`_p8wNQ|+Tu?ITs~uT$+WRqd}+>De5sMEP9d z{n^XCmYs0#u_5Hoq7{61srOf__OGh;;=3Ej0fHXrT{BpVVVZ44onBu2lfY2I4pfEYfrf*rF`Sh zx@Q^NF3h-P{>;xnd;Am9H8QRK>t_J`Rhx~rx<>y*&*-o6Oh|7^KMx>im?j#)t!@Q- zLTDg+_OSn3^-!swL(PD%M@av}u$U=5uiO9g#-JuXBFS;{n*Okgeo}p(Rr?E6>vYxk zTt#oG*7g6E-E$RPrLs@;xP0f!_n`S{<(@@-+MkLV`O2^h9p3!l5Oh6Na;$&r`>&#t z9JQ;S*VY9pdu5LDKUDmT$Axd9;!or?K7@*|prQkEi{GHyx0PG_vsCnrijHwq&qhUm ztMqIh7k!%lHU2?PI_3n{GepN+0@_>O(^+3pSPQH66{ybo%B$;qeT^UIQK$UDq2IQ< zc_Mt^yhtH(i+}syIuGXTH%1VOI{mvCeWwfSk>+jrzdf4+tI@x2!Tx~C_JHqNwf%ty z*&axO{NL8@z>zVa*~fyYhWk6V2OPCKKyO8-K&FG8i4 zp<2JIl~&NNctBz$buUBblECVr^)~)?LvFh)5y$ z^2aq5;RvS#^8sH576Hx!76n3=!2B~%$p?gt+@5U_+9Ppk=-=Nb@u+3}IuCF)_#^w^ z%qSP}e{_3|UEr7E`rjXuz%`5yr~SVNpYP--9rJI|D^9vZ+E*FO zbX&8QHP6gi)URFP=i@h?zWDWc$M=If>6O1{cjaNzD=NC=g~qhrblU%WT%EgSY{uk`U<)mXKV8Ksx%z4E+ z-cdRJgU%Hq+km#~_kY7K;4$pia#S|zl>gH>DSft5pK%*HRtP@6>WlQr#B)`BzjO98 zBWO#VUS5p8=9K^AY=InS4>;xj=orrHv8{neNdFIt&%)v4d3^tWAq)Lq6U;N!Jegba z1=V`p(S2sQC5O!|IfA3|R@M2cD*20}cAZpmle{L6P@Nm@s6PBMrt@!PxE4HrvT4)(Wgi3Cr(z{T}O;q~r zs{PivrAMLCKX+7LqI47LhoR#;OkCL2_T0ILy`R2mQ+jXeourU`r6a#QSZv(Tn`OF& ztL@M|Y<{Im{;SfvaFma!+86NOs&}E%lW|lZ!>M=i_w+7u(vMMCToV0A@|0_kwb_$7 zI?Ai~t9uS|@+=(PU+gtp6aL^iB*4vt`#WbDIQso`%Kwvh)$V}(1r2GQzV|%N+?M}G zu&(OkC;wl}`nms1{;%36albthRfqlkeG;~NBp&7dh*Ow%ZoxU_|MpoFkDC6^>-+x; zTj+o1{{P|of9+QPOvmqqQ0Z-}=#$){>m22?ILdd(E&fYx@l8~GjYCY&7kTQ7Yo*JN zeWFd=&4}|>RY5(uh(Elp=ze>;3$rngIviMW*Vwo?HF>P0w#jkbv(XjM|EcchsL<^yk zb2|A2kLKJfmEMYKpRsEHy^~)sr9~=iusHbzvyw-I3Guk_3sib2|7(1Na@hRquie~w z^NrX0t;#?9)8b7MtFC*~@%>hLO&@{e{2`X*GuiDqf!`$O55(GOF?7an;l7yVH`yll zh12;FInQMyyMy-Ziw8jd9*q6QwC8y4+vE4PqK6Wf9E+@-p3h%wP<{NUL`Pi?U^K(deu_aJLUg>W&giZ z{*Q0rMCcU38F5I$WVn-X*Wpqy&Pdj;@AKE?|CZ^>2{~%uk<$OB^whXKPXCv{cT2bb zmqC?-YZAU+WDA6F32eTdN@ZJZ(SzctK+#!b0FZ3rnLPOXzfOs!Zm}r?5=C*?*K30~ ze{%R3tq#t^n=2}cDw;dnaHF&IWLl;9z71^mtxBV`^RcbI3{Ed03v&WLZ)Xi(g6;Cr z`GEh&X{T#jVFjd!^?X3G@7E@+`4CfL7UI&Ge`J5~I)}~FcH<5DxpDISf&9My2&;)f z@i^3;;}~!s&-oc7%8G{U7i-N!3eG6;<1&(cz_A?ebL1jFN;q7+DW2eW#9GT#knIpo z;QZJ-m#~!~5^2-ALgq>1@Y8Tl9@^c^t&?jPRo~_NeZ3dxumH zR3<|@)p2>G>j_7Gdj8+E=AYY><0d5b9*~uofZqjSzYum%h?yCy~F05}?I1>lO}T`3&i ztPd~L`@Lg}`Y(+i8MXkowY~A8KUa+neH`fF_*_QhLmvn9ocg@}T(`AY67vMLSp$T% zb6MNWh==yt3~J~1v{@AVRBhHB&urUFx7$d1N{-6MRr`fha&whEN7a4?NA-mqmA|X> zd~VdB_2itb=7Pn&$+O7)uuWonvY`=Ja(=$(e@=N(&ykKDIVaw}t zOa7i)a`tvikIrehcgpO`-}&rq-sX>uh4%k}??PRwpJlyc&lT9#BWp_c&V{4e#=zK= zYQKR>{;uLx{RK5Ds{@0De zcLg-wR2=q$>yiJ-M!R~wy4#dAyHedbKVDw~`)l8GJ%?{?d}Z+V7pt$EVLbl(xDUU^ zx&$8~e{KBe%!|HH4QsXQZ2Gx`{m(QLLZvUH(lb=)5#=?x!Q-w^sM`0HTl*wcas!n- zO?Cc|N}n*d_%_5x^oOI1*3N^0y1fa1thpo|An7i$b65t?-Dok43tgV=GGeQUnP>)V zDKuls5!m9#=Pw$87)GK65ay3WD7*`6cFHn!&oRa(&z&!+%817RakbOkO0 zjsU&`90}Y690&XuI01;E$95gR1NOrGMc{M5%fJ{QKA|EGcoUcmyaNP1#`YXX0b8Lg zV}MTqDP20x9m^7PFW?|xAK(z635Yy$dNq-TT#L$eGu4YL{DR@=nuc(+mYxoz_4EuN z@nh}rU+wW-|1Qtf9>3MrW{jizuWWg(4?5pb#b@mfKClT62M-R22cc40cp0V@1~0Zt zRCJ55h=}H4E!su5>d>uCr%3EN5}+F+3{Ls~?-Q?F?tG!>+DE7V@09=F|2wYwUOVOg z^;cg!FNCA^5gxW31l4+5wGLF#O{(v>>U-@deWd!ntLP@xci&OE$+=%Z@+BTN|3S6> zSFQ7Ni(lcC|JMj>8zY2M{x5_s|5xod9t-*ZVl4bu!f1LEEOsN{cEg2Z-Ig#E@^dVF z4?>Q99q2zCb_n4P!i8dCeqt{CfjQ4;>xsBI?X)F~1|JqKxAq~MKny&{9^pykTbD=D zzG_`2No!5#<*Wf`4LEDy->w1T6=Vv{K>6t1sApVqT5M)=Vph*KX{N-?)Wn2ji2HgD zgrGY;C97wArYSluC81~MRuQeE>xD+grY6)2CEuPInTc@&lJQ9Xmk&}+(dlu0d&XyE zFeYcE#>GJ-%^CoC)&75J$o1-p0$d*_!CRpVpCgt{f`=ns3lw5sFw6f3M{|ixLoyQi z2tbxok_=T78IYAGr}a*ka(j|f$~eVXP6-|l!kAdDPcmslu{<9l459?Wgc(RC`USs- z?xh@C6Y;6BS^fBVQ9M7#&%5w_lJy;BY{K`mhDWx=Sq|Tm!zWwAmxL@=%GZUsTgFT0 z1_mLXF5_;3`d}G%Hx_Y2mfOLg%R@=FP4ZA9!rQs5^3W(e%qeFk8FqL0Q@uoLdc7D7 zF}RoVWm#?tmt^&mWg}U45d7@Ps7Xeu>vEWgNrnsA_R65)sLY(;z5lq(lxHtIvn`u0yQMQGa!V$ml0B$o3@RD0O4eJj zG07N$FYcLJ#CPP|hOsflOYRwbPHh_^w`3S9S+7c_tKyZYWEgqP2Bb>Hc9ZKr$h%9o zHQsyQ9PwK8wBe(_H9F4w7y#zCzc%6JxvxZxnEvB|;lI4p>HTht9=>hJ$A!nCvQ7BE z#`|zoCqt!s@vwOuj`A#2vfJF!u~6y6sBGn^bT3rALX}R2il?K})o@hz;@{F;a8yU( zanVIk+2~Q}%H)=8SS16_DT_Vgo-K=Qfc1-9zsj|62G)T@H&lhA>s!beX~BF77z_kU z-b`!dAAwhaA#if-B-dXQpO)4o;pp0kaD-r~n9l<3$toSSWAUIfEgqF@Qs4if@BLT_ z-qdb5e{JZJloA*Fd%Mle=W0BiIcXc#x}o%KzE}R{s68!}+(6a#DtUrRKA`#*s`&b< z{d+n4++ei5t^D82`pQoEe@^+ouSK7hXvDuN|F_3~CB7?-<3~jQr^dw-tt>YH{1f`W zpzt;9DgwSQ&m$ShX~`z&q5HC~_s{i7AEI~XAz7xx)Xs@SKJv4&p!EVl^tp=Y=*&Kx zk=`k>eW1bZYj_>cg0i2bCnQE^#P&&ymJ~eEc)o^}2y>z=&0En>`3HF)o01rv7Mn^6 z_M}(P9?$Kl6-0NdMf9_mAsWx4vl30DMD2(^LOIZwwJrRJ%`|D^0?QkeE$fH~Iy=7V zj~e(1=01rgS?m@dvUUA+@C;BMDvsnu5FIPS=l@G||1$6iLh)Xv`{Vu@-EX1gt@*hh z?M`~*-MC!P3qo7deX7m9)FYRC8q&R|>m@iE6U4813-!HP)(dLAbMqFRWt|K_1%N+e zLT98;6!SueKO@6R-V5!k*voNKnZ6IAfcIWZ-;*AEO+2G?p_gw>SMnZY{!ZXqO4n(m z3sq#X6-fDOa)H~8^Vc;aA{{zE+-|Bo%J9`W&$OSTFUNmdqqaVcI`R_n8Eu&BM18J> z0YSK*yu#t?!Y|O`PkSqbSj+x_`0WYT(tvJb<$XY7DL#qs<(`QbIBWpFoBGf@d|#aJ z(M83Ui&U0a}}LDMv5Lyz8C$aAogZZw{b`2^IIJ8 za?F;tqF6Rp7}ce>Xk^I1^GNJz;XM=howMD^pX!m?BT}<%54nGX%7Hx@)_S1uv>uZF z+2vz@yj1#UmyP|AaVl4&mR&9yADLWVLaf0v>VNfwKl3q-T)%Q1M)Q4nI1l8{O^%Of zOmxZAaZRytDT!RpXSnZ_N4-#;(E82J#r@y*J-a<+sP_ThaHKc47I_J}#Qi+lvU`Nb z2z689vwh9|BEyt`u*7GheqEcxui*Bh`bFQcjw=d7dwy1O7BYaU4|=-Jn~1xB|5rKN_t#u zik$niOtGc`Su)R*#Ri;K(0%3$BiC0!;chrOn0SsNIHE(X+EhC7`y|`1mhQKa)8ufW zp|)~xLV?6RE|nO`p%u?`Y_XH6umVA`LOcEt=|-#S1ZHH`JASJKR7P! z*9tSFq4JAerat+j_O9^M4rp>7OG6)V`HB3C@;qTgJpCQ$5s4=Hl){hRk&ZO}kJAix z$=Q#oPe$OmE5GB8=Bw@FI1$$L^K-iP`gR+{E5PyoPxIFM9<)bkFCm7bXn2M4*IM{s zF0X*zUIjHo`Jpl{;%6?Fdrdsg_ikL4AUv;)e(nRLejbd(D!@&`?^^O8Z7AbZ<8eZLsw1cI ztF}!`>JU|Yf__JSdVb#3{4gRYKWm}+?V;7%qS?lp0S?_KYDX9njX%s|=e$M5WqGSa;!y7GOhOMcOW$G?0> zN}TOG&U2V0C?l0w6O;KJ#ZilYBH!%|ThK@6g6^n@@#i|aw1>ZI5uYADJv`ifJ@b)l zt(+yyc0J6fk{(4|i}?(&hNAC$2duZ`T874R2wWvNn!}CAx1B2t#pksQ4K95xLuJi5 zzG&PHhCj8b?b??7gW#WYjYDgY`CMixTci7TEcg1FGR-NU$6iTTvA^1HU1lGjHQnv^zReFVQ>$MpIQQg+u%sCWvHzkP`JdYs{bz-AV_^4rf!}(ReR&4 zIu;PQXvaHqIxk&(w)GeI2H~rKy-<6)e{(x)$Dmd>BKEv7zBc?%V@2ezed4pN?9`F- z{#ZY}*;uIy>?r@;QQhICEI+HbaLZ4FPPl!0qD8eXlg?!xQOnO%@}%54b4_(-%nK|p zy!Xs+m2R?%XZUaN1|8kgtlGP*(nVF-x_(^bUaCE;j>^MwOYWtT@2ccmDmj))hg~Jd zQrW^+@zPbg?J6F-N=~NIc~_lTu9E8?t3>nI3h&Qe?zQZMdyfqve-^FayGwn>xyqKg zYA>=%E|}N$DCadfpGrQr1pH-xt$oGNMW>p6-L6;L^=^&c`Jyj)(fmCMxHEKd=!UX| z#iGDBYW4a!O^7$x|BD;H{BZj4ih|}VA58vxXRA4?C!~@e|Bm&SE_WlIZg`oGO#wVHn1)b zRVV5L!+;Hd?SM}Lqku+W9IyqD_@FI;ln+{$O5UvG?@~U9v?G2IT>}x0-aiyb@28`l zu*47}f%LvHK-%{?9@qvr0oWNh5f}q}5tss;3>*TS0;KnbpdKW@6>AOrruUYEe@XnN z>s5rS4qO3j0(=ulTY+1EKLd9FQK#Yn zkoJe}1rnXTAK2dF-vxLO_taL0fIWeSfwW)rQ(!XiC@=%~5fI`=aSVt$5hs9SfnNZp z1HS^!1fB%W1AYTs1Uv;?3Pjn>D3dq?d<%FMxB*D%5Fh&oAk|kmoa84;J|oo^kzG_b zbaiu;`%+_o)Q@6;MS*d^vcNt-;!7q0DZOcMl5Z#k@e?UM+Rr)`j;{a1dx=f-C$J#! z4v_j=Sr=ih1Jr=j?ruP8Z*L%mqbLB(0u}*I0Tu<$0+s|q4N5>olK1^S0bGrH@Sb@8 zZ)G6&3;0Q%faEPuzVK%qQ^gSu^TOXWp8aN&}4fq0(`U~B^1_bZHjJ_`> z0@0WGeh=_P+@lYP$-wi#X~3U=(}7okvw&z*F%L);x(MhCTnr2VE&-MSt^lHq#cCkh zNNfb6jl?G4UumD05suo2-bdl743ZZCo;uQ@_Nf7X8Y6VQhj7II-VUUBWfzbbReONc z9v=al0}lYZ01pFu0uKUd9=i&h0K5r&75FD`3Gfc^ZJ>t!z82^L+zfOB;`1*&fu95O z0j~kQfp;waUdWpt?x{Ts080W30^@;&fiw>k1=2iF4448e0i^k$Byboo2xtaY0AlVF zRe>}Q97Vq70zU&T2mS}R3-|>PbBXv0h&e`l1H1_Q7U+UHBYz(tg~yl@XMh+B;(H*D zD-=Hfy8+JuA=Ve?fg^zzf#^Hp5|H>-)sT-Eq^s+Ic%jn;!?lEqfg220^El4r1a5{q z2zLq2>v@EO3x~6{F?tY{N&DPy!TDk$9t%f%+)u2LwnaA&6XFQm@Zsp2aM$3L%|$;L zf$#iC%wKRRa3KruO?)0{nGt_0(i)Y+wkZ6zjK&xTdX2&OhBL!WgL{~J-*x>GTl=C( zsDrU^3*a`xoq)Rz7la0H0M{KZY7@p5>ckCw>XFI+v(n635kMA*o)NFogt)LaP)puR{pUveXc@wQy>vFh?*x%uT zHgsYBx({;j8>jt_2!@|gRO9-z#OJo7__WTs&f!8KneqjPTgLaciSH^JiI*YAr@b2V z-8_%Z$~qgP+^qHpi-1o|O-p+2%+7rj-CiOK za9$+7YfZ>MbbN=23%ee@Tq|`(f&UaZ)e3Y9hktlB!c}KTs`$eyKJ(+kH-23B!z%up zqkLl(|I<-^vWjo)D1TVRw^#9j9p(2v?tER9{7$v6L$$9aui2hd$=y`@k%&*LFZ5|0 zcM7_7K3I%hg?|W~q#NY=l;~z6RZ7Cq)mO4_1^AE5E65@i1nj+FR&BvAg~LNcvxM5M}SWQKLcV-X}$o&JI(mSvW-1j4~F6X z1~3kI8`u-*hB~5qqFLgBXW_5&5^VVb|1JATW|}pz8t(7zhb4O8QPTg(@u_*5{;vVL zx@qD*f`ApS0nJ55Rd%kWYUlj#4CIQ$H|^#2ilHpEK*%ecY!rT=A^ zN=kaaG-!H~vk*=HJ*OXm^u2MGL17W5xk2xZo=ckl2{5EJQAfCe-YyEKqWwu{lW709 z3sLxZru{1-2hA|EOTGYjmi(-)Rv9M`OhOo{&$5Vv*^B!Tr4fUCg>bkr(E2Qd`4<|? zK+-FVL7wz9+{73=^#3@!^nWe%B}eFg1DDxJ|L3&T?6jj0edTm<$MwS=cl!VTnEqdI zrqbTSWBTl@I`+`or5jD(IO+du3!d{Cz6iPkSQPqev!~w~c5Zvsdds`KS?GhK;yrvP zo%FwFidl%q#a_a{r61;`|D_(7lm0L4Q}HbPUqWj^;^gd{Pwyob0Nc29@|3=^dAkpW8 zfkgL@27+B{o(Oyj_!5xl{-wZnz!kvuz}3JGz%@YP1FQo^0e1j90}lhc0FMEQ5AYu# z-pO=4z3)fdG2lu^z?kEey3T9tm43Kmq;(&#K#0Mx0#NI7)Ah0*E6tE94 z2$%#c2TTUm0Hy#*Cngox444KC1EvFsHUYh7CYfRuurtsEOau-B_5%(D_6IfxLNATa z4uFb+KwX)~S?;M#p2z)vJAdMqSrdVyGyyw+y0|<~)Bk@({_oGS*uN(KmtocPzy91F z{h$3TZ^-`xbCmmj@_!jNTmE04 z{J$pu@5=A9FaIye={#8e|2d~|ul#=&`#)IzKbOPZEC1KyKWzEG3zySL|2ye_qU&bP z8km3J##fr(Jk{;j|4sVeDgW<(vB&Gs$E`~J;q7kg1COpKmomiYr2qGS>-pLIsVjSi zbgcRj^s4Jn{Zy|xbluI_PkncG%*6FQob>Hl+!T5aDe zob1Di;~X7i-=Khh~_V$i^-IRYsrG)BN)(y@JVd}ex9dT&!uNT*6ckr}4s z)a0SbX?=oPq^D*irzB=V2LABu?bU%?^cr#mW$(vc*H~q{LM59~*}zcQx=`7!aMVVH zN;k?;TkfhggQK=99=2@KQC;H@FgpFUuD;7VzLK~mWXJfxBT=Q^t>lz7>a>PRrueXR zhgG&ER64~ETX$HcJE=McP9-~W)Mk5A2nqbP)H_Kb`$|WCd9c{Hp*PEP4Tt=J{cj$4 z@%t8o7mP`K^RtbUb`M*DZ(t1ypMP8aa~C!bnf!Xx&T6hE-&?TH8cP0e?p!|Y=%m~0 z3;$O9vjx3d{DwVr9Nt5?cPg4)(x+ugQ`~0o zW>4=n25W8;gn&8s<6gqrd+yuVcZ>D6?S9!dbvW(A)%V{%%)Pg& zbEo^Dj4Jyusy_X&$I|06W>nuWr~LnJ{r{Fy9>e;oIraZRR+=&V?vnpUSi(Ey|9MaT z|8MdqFkL??{r}kL)L6OsAMebo^nU|<&vaYLO~3=73$`h+Gn;LFh`E8dhrtm|jEauN z$%hdw+Q(*eHf4fA5eCElu_lBgo5A+>p_6{Oj5~$(&?n-1sfh?aOP~Xe5}UF5lz0$v@#JKLL1~%y)S%dnDc!g0S*^nzcS+tbUhV=p7jzGM_E6ADuEv z^+s_?uPJ9-==WIsWL#<^&L2g_Z_0-O*p=(A65pd~#0aim+E*acZUDcWX+sytUfM7e z&1Xn(T4~7FGhFt;$h%C-XpNU$Ml2ibq!rgHGm|Xl%f3Nn1Zj0oKFn6XOD<%ynaTx? zrnI;Ly?aMzB@d;}rI&LG=Y?$DN;}rm_}<9%D&xV{^}txDL1o8D;JR={U4$8m!oMfS z>FeSJ12*)&{%8+qNDVLzqBnv`hl|oDyX)1sUS}b$o-f%qTBMmcJ*xX~PR|cEHpqfI zwTC9Uv0r_p<0i-!F4-*##2U0A`lzeXr@T)KpAZjMUpFrg4__CIRnno6`Ij~{`XYP{ zPNO2{r7!Z5ou=$V&<>*}zX^nT^|bXEu1#=kqg zG2#_X+W(bxmYL!(lghET^ZJ zI|=D=xkp!5mYdp&Y;qLmHa5UEn;Vy%+Pwn%y$T<k#dp>(*r!+N7n(`gC z=?&!c3R>F7%~LP;sIOGz-plP`;Ji_}t8m(bv5O}5uC`7&xAQ4?mJYsuW_3BE%%tY`QGEM^mkj+U+QrBGjgOa=S^9+`WXgc z$YUeqpPc@i_KZbQC%@;?M&Z+j@-^Z!N;{zSi^JB(OZ*-YoJbQ-bUaQ)O&dUiM7P6E z-!|Cpzsq(9%}Mk<>!98JJtMmw^lthdb;PC+)`GM4~4Gj&r-(=s9 zmvtkC6`?)19$3dnTR{taksz+wa0TEX{^7O42@a2Q7jmo>@R<9OYMmhC73aCt-a3KC zGuaQ4;pCYYw9oDWzwddDr&))&w%0AkLG$H2{sr-#AVN$DuWWj8lr^ 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

    *jfKetf9={;J1Zyd$1pp?p3#-#tGt-F<&J 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, buffer, pos, pos+size, read_buffer); - if (match(needle_str, read_str)){ + if (match_ss(needle_str, read_str)){ *result = pos; goto finished; } @@ -322,7 +322,7 @@ buffer_seek_string_backward(Application_Links *app, Buffer_Summary *buffer, char at_pos = stream.data[pos]; if (at_pos == first_char){ app->buffer_read_range(app, buffer, pos, pos+size, read_buffer); - if (match(needle_str, read_str)){ + if (match_ss(needle_str, read_str)){ *result = pos; goto finished; } @@ -372,7 +372,7 @@ buffer_seek_string_insensitive_forward(Application_Links *app, Buffer_Summary *b char at_pos = char_to_upper(stream.data[pos]); if (at_pos == first_char){ app->buffer_read_range(app, buffer, pos, pos+size, read_buffer); - if (match_insensitive(needle_str, read_str)){ + if (match_insensitive_ss(needle_str, read_str)){ *result = pos; goto finished; } @@ -422,7 +422,7 @@ buffer_seek_string_insensitive_backward(Application_Links *app, Buffer_Summary * char at_pos = char_to_upper(stream.data[pos]); if (at_pos == first_char){ app->buffer_read_range(app, buffer, pos, pos+size, read_buffer); - if (match_insensitive(needle_str, read_str)){ + if (match_insensitive_ss(needle_str, read_str)){ *result = pos; goto finished; } @@ -1556,9 +1556,9 @@ file_name_in_quotes(Application_Links *app, String *file_name){ if (size < sizeof(short_file_name)){ if (app->buffer_read_range(app, &buffer, start, end, short_file_name)){ result = true; - copy(file_name, make_string(buffer.file_name, buffer.file_name_len)); + copy_ss(file_name, make_string(buffer.file_name, buffer.file_name_len)); remove_last_folder(file_name); - append(file_name, make_string(short_file_name, size)); + append_ss(file_name, make_string(short_file_name, size)); } } @@ -1631,7 +1631,7 @@ CUSTOM_COMMAND_SIG(goto_line){ bar.string = make_fixed_width_string(string_space); if (query_user_number(app, &bar)){ - int line_number = str_to_int(bar.string); + int line_number = str_to_int_s(bar.string); active_view_to_line(app, access, line_number); } } @@ -1684,7 +1684,7 @@ isearch(Application_Links *app, int start_reversed){ break; } else if (in.key.character && key_is_unmodified(&in.key)){ - append(&bar.string, in.key.character); + append_s_char(&bar.string, in.key.character); made_change = 1; } else if (in.key.keycode == key_back){ @@ -1896,10 +1896,11 @@ CUSTOM_COMMAND_SIG(close_all_code){ app->get_buffer_next(app, &buffer, access)){ extension = file_extension(make_string(buffer.file_name, buffer.file_name_len)); - if (match(extension, make_lit_string("cpp")) || - match(extension, make_lit_string("hpp")) || - match(extension, make_lit_string("c")) || - match(extension, make_lit_string("h"))){ + if (match_ss(extension, make_lit_string("cpp")) || + match_ss(extension, make_lit_string("hpp")) || + match_ss(extension, make_lit_string("c")) || + match_ss(extension, make_lit_string("h")) || + match_ss(extension, make_lit_string("cc"))){ buffers_to_close[buffers_to_close_count++] = buffer.buffer_id; } @@ -1916,7 +1917,7 @@ CUSTOM_COMMAND_SIG(open_all_code){ // and doesn't set up a persistent allocation system within app->memory. // push_directory isn't a very good option since it's tied to the parameter // stack, so I am phasing that idea out now. - String dir = make_string(app->memory, 0, app->memory_size); + String dir = make_string_cap(app->memory, 0, app->memory_size); dir.size = app->directory_get_hot(app, dir.str, dir.memory_size); int dir_size = dir.size; @@ -1927,19 +1928,19 @@ CUSTOM_COMMAND_SIG(open_all_code){ for (int i = 0; i < list.count; ++i){ File_Info *info = list.infos + i; if (!info->folder){ - String extension = make_string(info->filename, info->filename_len, info->filename_len+1); + String extension = make_string_cap(info->filename, info->filename_len, info->filename_len+1); extension = file_extension(extension); - if (match(extension, make_lit_string("cpp")) || - match(extension, make_lit_string("hpp")) || - match(extension, make_lit_string("c")) || - match(extension, make_lit_string("h")) || - match(extension, make_lit_string("cc"))){ + if (match_ss(extension, make_lit_string("cpp")) || + match_ss(extension, make_lit_string("hpp")) || + match_ss(extension, make_lit_string("c")) || + match_ss(extension, make_lit_string("h")) || + match_ss(extension, make_lit_string("cc"))){ // NOTE(allen): There's no way in the 4coder API to use relative // paths at the moment, so everything should be full paths. Which is // managable. Here simply set the dir string size back to where it // was originally, so that new appends overwrite old ones. dir.size = dir_size; - append(&dir, info->filename); + append_sc(&dir, info->filename); app->create_buffer(app, dir.str, dir.size, 0); } } @@ -2016,12 +2017,12 @@ get_build_directory(Application_Links *app, Buffer_Summary *buffer, String *dir_ int result = BuildDir_None; if (buffer && buffer->file_name){ - if (!match(buffer->file_name, buffer->buffer_name)){ - String dir = make_string(buffer->file_name, - buffer->file_name_len, - buffer->file_name_len+1); + if (!match_cc(buffer->file_name, buffer->buffer_name)){ + String dir = make_string_cap(buffer->file_name, + buffer->file_name_len, + buffer->file_name_len+1); remove_last_folder(&dir); - append(dir_out, dir); + append_ss(dir_out, dir); result = BuildDir_AtFile; } } @@ -2051,26 +2052,26 @@ standard_build_search(Application_Links *app, for(;;){ int old_size = dir->size; - append(dir, filename); + append_ss(dir, filename); if (app->file_exists(app, dir->str, dir->size)){ dir->size = old_size; if (use_path_in_command){ - append(command, '"'); - append(command, *dir); - append(command, commandname); - append(command, '"'); + append_s_char(command, '"'); + append_ss(command, *dir); + append_ss(command, commandname); + append_s_char(command, '"'); } else{ - append(command, commandname); + append_ss(command, commandname); } char space[512]; String message = make_fixed_width_string(space); - append(&message, "Building with: "); - append(&message, *command); - append(&message, '\n'); + append_ss(&message, make_lit_string("Building with: ")); + append_ss(&message, *command); + append_s_char(&message, '\n'); app->print_message(app, message.str, message.size); @@ -2089,8 +2090,8 @@ standard_build_search(Application_Links *app, dir->size = app->directory_get_hot(app, dir->str, dir->memory_size); char backup_space[256]; String backup_command = make_fixed_width_string(backup_space); - append(&backup_command, make_lit_string("echo could not find ")); - append(&backup_command, filename); + append_ss(&backup_command, make_lit_string("echo could not find ")); + append_ss(&backup_command, filename); app->exec_system_command(app, view, buffer_identifier(literal("*compilation*")), dir->str, dir->size, @@ -2258,7 +2259,7 @@ generic_search_all_buffers(Application_Links *app, General_Memory *general, Part Search_Iter iter = {0}; search_iter_init(general, &iter, string.string.size); - copy(&iter.word, string.string); + copy_ss(&iter.word, string.string); int buffer_count = app->get_buffer_count(app); search_set_init(general, &set, buffer_count); @@ -2346,16 +2347,16 @@ generic_search_all_buffers(Application_Links *app, General_Memory *general, Part part_size += str_len; - String out_line = make_string(spare, 0, str_len); - append(&out_line, make_string(match.buffer.file_name, file_len)); - append(&out_line, ':'); + String out_line = make_string_cap(spare, 0, str_len); + append_ss(&out_line, make_string(match.buffer.file_name, file_len)); + append_s_char(&out_line, ':'); append_int_to_str(&out_line, word_pos.line); - append(&out_line, ':'); + append_s_char(&out_line, ':'); append_int_to_str(&out_line, word_pos.character); - append(&out_line, ':'); - append(&out_line, ' '); - append(&out_line, line_str); - append(&out_line, '\n'); + append_s_char(&out_line, ':'); + append_s_char(&out_line, ' '); + append_ss(&out_line, line_str); + append_s_char(&out_line, '\n'); end_temp_memory(line_temp); } @@ -2589,19 +2590,19 @@ CUSTOM_COMMAND_SIG(execute_arbitrary_command){ // is still available in bar.string though. app->end_query_bar(app, &bar, 0); - if (match(bar.string, make_lit_string("open all code"))){ + if (match_ss(bar.string, make_lit_string("open all code"))){ exec_command(app, open_all_code); } - else if(match(bar.string, make_lit_string("close all code"))){ + else if(match_ss(bar.string, make_lit_string("close all code"))){ exec_command(app, close_all_code); } - else if (match(bar.string, make_lit_string("open menu"))){ + else if (match_ss(bar.string, make_lit_string("open menu"))){ exec_command(app, cmdid_open_menu); } - else if (match(bar.string, make_lit_string("dos lines"))){ + else if (match_ss(bar.string, make_lit_string("dos lines"))){ exec_command(app, eol_dosify); } - else if (match(bar.string, make_lit_string("nix lines"))){ + else if (match_ss(bar.string, make_lit_string("nix lines"))){ exec_command(app, eol_nixify); } else{ diff --git a/4coder_helper.h b/4coder_helper.h index bfe2aebb..c0903809 100644 --- a/4coder_helper.h +++ b/4coder_helper.h @@ -388,7 +388,7 @@ query_user_general(Application_Links *app, Query_Bar *bar, int force_number){ } } else if (good_character){ - append(&bar->string, in.key.character); + append_s_char(&bar->string, in.key.character); } } } diff --git a/4coder_jump_parsing.cpp b/4coder_jump_parsing.cpp index 78eb29a8..246e2484 100644 --- a/4coder_jump_parsing.cpp +++ b/4coder_jump_parsing.cpp @@ -18,40 +18,40 @@ static int ms_style_verify(String line, int paren_pos){ int result = false; - String line_part = substr(line, paren_pos); - if (match_part(line_part, ") : ")){ - result = true; - } - else if (match_part(line_part, "): ")){ - result = true; - } - - return(result); -} - -static int + String line_part = substr_tail(line, paren_pos); + if (match_part_sc(line_part, ") : ")){ + result = true; + } + else if (match_part_sc(line_part, "): ")){ + result = true; + } + + return(result); +} + +static int parse_error(String line, Jump_Location *location, int skip_sub_errors, int *colon_char){ - int result = false; - + int result = false; + String original_line = line; line = skip_chop_whitespace(line); - - int colon_pos = find(line, 0, ')'); + + int colon_pos = find_s_char(line, 0, ')'); if (ms_style_verify(line, colon_pos)){ - colon_pos = find(line, colon_pos, ':'); + colon_pos = find_s_char(line, colon_pos, ':'); if (colon_pos < line.size){ String location_str = substr(line, 0, colon_pos); if (!(skip_sub_errors && original_line.str[0] == ' ')){ location_str = skip_chop_whitespace(location_str); - int paren_pos = find(location_str, 0, '('); + int paren_pos = find_s_char(location_str, 0, '('); if (paren_pos < location_str.size){ String file = substr(location_str, 0, paren_pos); file = skip_chop_whitespace(file); - int close_pos = find(location_str, 0, ')') + 1; + int close_pos = find_s_char(location_str, 0, ')') + 1; if (close_pos == location_str.size && file.size > 0){ String line_number = substr(location_str, paren_pos+1, @@ -61,17 +61,17 @@ parse_error(String line, Jump_Location *location, if (line_number.size > 0){ location->file = file; - int comma_pos = find(line_number, 0, ','); + int comma_pos = find_s_char(line_number, 0, ','); if (comma_pos < line_number.size){ int start = comma_pos+1; String column_number = substr(line_number, start, line_number.size-start); line_number = substr(line_number, 0, comma_pos); - location->line = str_to_int(line_number); - location->column = str_to_int(column_number); + location->line = str_to_int_s(line_number); + location->column = str_to_int_s(column_number); } else{ - location->line = str_to_int(line_number); + location->line = str_to_int_s(line_number); location->column = 1; } @@ -85,15 +85,15 @@ parse_error(String line, Jump_Location *location, } else{ - int colon_pos1 = find(line, 0, ':'); + int colon_pos1 = find_s_char(line, 0, ':'); if (line.size > colon_pos1+1){ if (char_is_slash(line.str[colon_pos1+1])){ - colon_pos1 = find(line, colon_pos1+1, ':'); + colon_pos1 = find_s_char(line, colon_pos1+1, ':'); } } - int colon_pos2 = find(line, colon_pos1+1, ':'); - int colon_pos3 = find(line, colon_pos2+1, ':'); + int colon_pos2 = find_s_char(line, colon_pos1+1, ':'); + int colon_pos3 = find_s_char(line, colon_pos2+1, ':'); if (colon_pos3 < line.size){ String filename = substr(line, 0, colon_pos1); @@ -104,30 +104,30 @@ parse_error(String line, Jump_Location *location, line_number.size > 0 && column_number.size > 0){ location->file = filename; - location->line = str_to_int(line_number); - location->column = str_to_int(column_number); + location->line = str_to_int_s(line_number); + location->column = str_to_int_s(column_number); *colon_char = colon_pos3; result = true; } } else{ - colon_pos1 = find(line, 0, ':'); + colon_pos1 = find_s_char(line, 0, ':'); if (line.size > colon_pos1+1){ if (char_is_slash(line.str[colon_pos1+1])){ - colon_pos1 = find(line, colon_pos1+1, ':'); + colon_pos1 = find_s_char(line, colon_pos1+1, ':'); } } - colon_pos2 = find(line, colon_pos1+1, ':'); + colon_pos2 = find_s_char(line, colon_pos1+1, ':'); if (colon_pos2 < line.size){ String filename = substr(line, 0, colon_pos1); String line_number = substr(line, colon_pos1+1, colon_pos2 - colon_pos1 - 1); - if (str_is_int(line_number)){ + if (str_is_int_s(line_number)){ if (filename.size > 0 && line_number.size > 0){ location->file = filename; - location->line = str_to_int(line_number); + location->line = str_to_int_s(line_number); location->column = 0; *colon_char = colon_pos2; result = true; diff --git a/4coder_string.h b/4coder_string.h index 0a8e2f09..fb2d0749 100644 --- a/4coder_string.h +++ b/4coder_string.h @@ -1,6 +1,10 @@ // TOP +#if defined(FSTRING_C) +#define FSTRING_INLINE static +#endif + #if defined(FSTRING_IMPLEMENTATION) && defined(FSTRING_GUARD) #undef FSTRING_IMPLEMENTATION #endif @@ -17,16 +21,16 @@ #ifndef FSTRING_STRUCT #define FSTRING_STRUCT -struct String{ +typedef struct String{ char *str; int32_t size; int32_t memory_size; -}; +} String; -struct Offset_String{ +typedef struct Offset_String{ int32_t offset; int32_t size; -}; +} Offset_String; #endif #ifndef fstr_bool @@ -37,7 +41,7 @@ struct Offset_String{ # define literal(s) (s), (sizeof(s)-1) #endif -#ifndef FCODER_STRING_H +#if !defined(FCODER_STRING_H) #define FCODER_STRING_H FSTRING_INLINE fstr_bool char_is_slash(char c); @@ -50,77 +54,77 @@ FSTRING_INLINE fstr_bool char_is_alpha(char c); FSTRING_INLINE fstr_bool char_is_alpha_true(char c); FSTRING_INLINE fstr_bool char_is_hex(char c); FSTRING_INLINE fstr_bool char_is_numeric(char c); -FSTRING_INLINE String string_zero(); -FSTRING_INLINE String make_string(void *str, int32_t size, int32_t mem_size); +FSTRING_INLINE String string_zero(void); +FSTRING_INLINE String make_string_cap(void *str, int32_t size, int32_t mem_size); FSTRING_INLINE String make_string(void *str, int32_t size); #ifndef make_lit_string -# define make_lit_string(s) (make_string((char*)(s), sizeof(s)-1, sizeof(s))) +# define make_lit_string(s) (make_string_cap((char*)(s), sizeof(s)-1, sizeof(s))) #endif #ifndef make_fixed_width_string -# define make_fixed_width_string(s) (make_string((char*)(s), 0, sizeof(s))) +# define make_fixed_width_string(s) (make_string_cap((char*)(s), 0, sizeof(s))) #endif #ifndef expand_str # define expand_str(s) ((s).str), ((s).size) #endif FSTRING_LINK int32_t str_size(char *str); FSTRING_INLINE String make_string_slowly(void *str); -FSTRING_INLINE String substr(String str, int32_t start); +FSTRING_INLINE String substr_tail(String str, int32_t start); FSTRING_INLINE String substr(String str, int32_t start, int32_t size); FSTRING_LINK String skip_whitespace(String str); FSTRING_LINK String chop_whitespace(String str); FSTRING_LINK String skip_chop_whitespace(String str); FSTRING_INLINE String tailstr(String str); -FSTRING_LINK fstr_bool match(char *a, char *b); -FSTRING_LINK fstr_bool match(String a, char *b); -FSTRING_INLINE fstr_bool match(char *a, String b); -FSTRING_LINK fstr_bool match(String a, String b); -FSTRING_LINK fstr_bool match_part(char *a, char *b, int32_t *len); -FSTRING_LINK fstr_bool match_part(String a, char *b, int32_t *len); -FSTRING_INLINE fstr_bool match_part(char *a, char *b); -FSTRING_INLINE fstr_bool match_part(String a, char *b); -FSTRING_LINK fstr_bool match_part(char *a, String b); -FSTRING_LINK fstr_bool match_part(String a, String b); -FSTRING_LINK fstr_bool match_insensitive(char *a, char *b); -FSTRING_LINK fstr_bool match_insensitive(String a, char *b); -FSTRING_INLINE fstr_bool match_insensitive(char *a, String b); -FSTRING_LINK fstr_bool match_insensitive(String a, String b); -FSTRING_LINK fstr_bool match_part_insensitive(char *a, char *b, int32_t *len); -FSTRING_LINK fstr_bool match_part_insensitive(String a, char *b, int32_t *len); -FSTRING_INLINE fstr_bool match_part_insensitive(char *a, char *b); -FSTRING_INLINE fstr_bool match_part_insensitive(String a, char *b); -FSTRING_LINK fstr_bool match_part_insensitive(char *a, String b); -FSTRING_LINK fstr_bool match_part_insensitive(String a, String b); -FSTRING_LINK int32_t compare(char *a, char *b); -FSTRING_LINK int32_t compare(String a, char *b); -FSTRING_INLINE int32_t compare(char *a, String b); -FSTRING_LINK int32_t compare(String a, String b); -FSTRING_LINK int32_t find(char *str, int32_t start, char character); -FSTRING_LINK int32_t find(String str, int32_t start, char character); -FSTRING_LINK int32_t find(char *str, int32_t start, char *characters); -FSTRING_LINK int32_t find(String str, int32_t start, char *characters); -FSTRING_LINK int32_t find_substr(char *str, int32_t start, String seek); -FSTRING_LINK int32_t find_substr(String str, int32_t start, String seek); -FSTRING_LINK int32_t rfind_substr(String str, int32_t start, String seek); -FSTRING_LINK int32_t find_substr_insensitive(char *str, int32_t start, String seek); -FSTRING_LINK int32_t find_substr_insensitive(String str, int32_t start, String seek); -FSTRING_INLINE fstr_bool has_substr(char *s, String seek); -FSTRING_INLINE fstr_bool has_substr(String s, String seek); -FSTRING_INLINE fstr_bool has_substr_insensitive(char *s, String seek); -FSTRING_INLINE fstr_bool has_substr_insensitive(String s, String seek); -FSTRING_LINK int32_t copy_fast_unsafe(char *dest, char *src); -FSTRING_LINK int32_t copy_fast_unsafe(char *dest, String src); -FSTRING_LINK fstr_bool copy_checked(String *dest, String src); -FSTRING_LINK fstr_bool copy_partial(String *dest, char *src); -FSTRING_LINK fstr_bool copy_partial(String *dest, String src); -FSTRING_INLINE int32_t copy(char *dest, char *src); -FSTRING_INLINE void copy(String *dest, String src); -FSTRING_INLINE void copy(String *dest, char *src); -FSTRING_LINK fstr_bool append_checked(String *dest, String src); -FSTRING_LINK fstr_bool append_partial(String *dest, char *src); -FSTRING_LINK fstr_bool append_partial(String *dest, String src); -FSTRING_LINK fstr_bool append(String *dest, char c); -FSTRING_INLINE fstr_bool append(String *dest, String src); -FSTRING_INLINE fstr_bool append(String *dest, char *src); +FSTRING_LINK fstr_bool match_cc(char *a, char *b); +FSTRING_LINK fstr_bool match_sc(String a, char *b); +FSTRING_INLINE fstr_bool match_cs(char *a, String b); +FSTRING_LINK fstr_bool match_ss(String a, String b); +FSTRING_LINK fstr_bool match_part_ccl(char *a, char *b, int32_t *len); +FSTRING_LINK fstr_bool match_part_scl(String a, char *b, int32_t *len); +FSTRING_INLINE fstr_bool match_part_cc(char *a, char *b); +FSTRING_INLINE fstr_bool match_part_sc(String a, char *b); +FSTRING_LINK fstr_bool match_part_cs(char *a, String b); +FSTRING_LINK fstr_bool match_part_ss(String a, String b); +FSTRING_LINK fstr_bool match_insensitive_cc(char *a, char *b); +FSTRING_LINK fstr_bool match_insensitive_sc(String a, char *b); +FSTRING_INLINE fstr_bool match_insensitive_cs(char *a, String b); +FSTRING_LINK fstr_bool match_insensitive_ss(String a, String b); +FSTRING_LINK fstr_bool match_part_insensitive_ccl(char *a, char *b, int32_t *len); +FSTRING_LINK fstr_bool match_part_insensitive_scl(String a, char *b, int32_t *len); +FSTRING_INLINE fstr_bool match_part_insensitive_cc(char *a, char *b); +FSTRING_INLINE fstr_bool match_part_insensitive_sc(String a, char *b); +FSTRING_LINK fstr_bool match_part_insensitive_cs(char *a, String b); +FSTRING_LINK fstr_bool match_part_insensitive_ss(String a, String b); +FSTRING_LINK int32_t compare_cc(char *a, char *b); +FSTRING_LINK int32_t compare_sc(String a, char *b); +FSTRING_INLINE int32_t compare_cs(char *a, String b); +FSTRING_LINK int32_t compare_ss(String a, String b); +FSTRING_LINK int32_t find_c_char(char *str, int32_t start, char character); +FSTRING_LINK int32_t find_s_char(String str, int32_t start, char character); +FSTRING_LINK int32_t find_c_chars(char *str, int32_t start, char *characters); +FSTRING_LINK int32_t find_s_chars(String str, int32_t start, char *characters); +FSTRING_LINK int32_t find_substr_c(char *str, int32_t start, String seek); +FSTRING_LINK int32_t find_substr_s(String str, int32_t start, String seek); +FSTRING_LINK int32_t rfind_substr_s(String str, int32_t start, String seek); +FSTRING_LINK int32_t find_substr_insensitive_c(char *str, int32_t start, String seek); +FSTRING_LINK int32_t find_substr_insensitive_s(String str, int32_t start, String seek); +FSTRING_INLINE fstr_bool has_substr_c(char *s, String seek); +FSTRING_INLINE fstr_bool has_substr_s(String s, String seek); +FSTRING_INLINE fstr_bool has_substr_insensitive_c(char *s, String seek); +FSTRING_INLINE fstr_bool has_substr_insensitive_s(String s, String seek); +FSTRING_LINK int32_t copy_fast_unsafe_cc(char *dest, char *src); +FSTRING_LINK int32_t copy_fast_unsafe_cs(char *dest, String src); +FSTRING_LINK fstr_bool copy_checked_ss(String *dest, String src); +FSTRING_LINK fstr_bool copy_partial_sc(String *dest, char *src); +FSTRING_LINK fstr_bool copy_partial_ss(String *dest, String src); +FSTRING_INLINE int32_t copy_cc(char *dest, char *src); +FSTRING_INLINE void copy_ss(String *dest, String src); +FSTRING_INLINE void copy_sc(String *dest, char *src); +FSTRING_LINK fstr_bool append_checked_ss(String *dest, String src); +FSTRING_LINK fstr_bool append_partial_sc(String *dest, char *src); +FSTRING_LINK fstr_bool append_partial_ss(String *dest, String src); +FSTRING_LINK fstr_bool append_s_char(String *dest, char c); +FSTRING_INLINE fstr_bool append_ss(String *dest, String src); +FSTRING_INLINE fstr_bool append_sc(String *dest, char *src); FSTRING_LINK fstr_bool terminate_with_null(String *str); FSTRING_LINK fstr_bool append_padding(String *dest, char c, int32_t target_size); FSTRING_LINK void replace_char(String *str, char replace, char with); @@ -133,24 +137,218 @@ FSTRING_LINK fstr_bool append_u64_to_str(String *dest, uint64_t x); FSTRING_LINK int32_t float_to_str_size(float x); FSTRING_LINK fstr_bool append_float_to_str(String *dest, float x); FSTRING_LINK fstr_bool float_to_str(String *dest, float x); -FSTRING_LINK fstr_bool str_is_int(String str); -FSTRING_LINK int32_t str_to_int(char *str); -FSTRING_LINK int32_t str_to_int(String str); +FSTRING_LINK int32_t str_is_int_c(char *str); +FSTRING_LINK fstr_bool str_is_int_s(String str); +FSTRING_LINK int32_t str_to_int_c(char *str); +FSTRING_LINK int32_t str_to_int_s(String str); FSTRING_LINK int32_t hexchar_to_int(char c); FSTRING_LINK char int_to_hexchar(int32_t x); FSTRING_LINK uint32_t hexstr_to_int(String str); FSTRING_LINK fstr_bool color_to_hexstr(String *s, uint32_t color); FSTRING_LINK fstr_bool hexstr_to_color(String s, uint32_t *out); -FSTRING_LINK int32_t reverse_seek_slash(String str, int32_t pos); +FSTRING_LINK int32_t reverse_seek_slash_pos(String str, int32_t pos); FSTRING_INLINE int32_t reverse_seek_slash(String str); FSTRING_INLINE String front_of_directory(String dir); FSTRING_INLINE String path_of_directory(String dir); -FSTRING_LINK fstr_bool set_last_folder(String *dir, char *folder_name, char slash); -FSTRING_LINK fstr_bool set_last_folder(String *dir, String folder_name, char slash); +FSTRING_LINK fstr_bool set_last_folder_sc(String *dir, char *folder_name, char slash); +FSTRING_LINK fstr_bool set_last_folder_ss(String *dir, String folder_name, char slash); FSTRING_LINK String file_extension(String str); FSTRING_LINK fstr_bool remove_last_folder(String *str); FSTRING_LINK fstr_bool string_set_match(String *str_set, int32_t count, String str, int32_t *match_index); +#if !defined(FSTRING_C) + +// NOTE(allen): This section is here to enable nicer names +// for C++ users who can have overloaded functions. None of +// these functions add new features. +FSTRING_INLINE String make_string(void *str, int32_t size, int32_t mem_size); +FSTRING_INLINE String substr(String str, int32_t start); +FSTRING_INLINE fstr_bool match(char *a, char *b); +FSTRING_INLINE fstr_bool match(String a, char *b); +FSTRING_INLINE fstr_bool match(char *a, String b); +FSTRING_INLINE fstr_bool match(String a, String b); +FSTRING_INLINE fstr_bool match_part(char *a, char *b, int32_t *len); +FSTRING_INLINE fstr_bool match_part(String a, char *b, int32_t *len); +FSTRING_INLINE fstr_bool match_part(char *a, char *b); +FSTRING_INLINE fstr_bool match_part(String a, char *b); +FSTRING_INLINE fstr_bool match_part(char *a, String b); +FSTRING_INLINE fstr_bool match_part(String a, String b); +FSTRING_INLINE fstr_bool match_insensitive(char *a, char *b); +FSTRING_INLINE fstr_bool match_insensitive(String a, char *b); +FSTRING_INLINE fstr_bool match_insensitive(char *a, String b); +FSTRING_INLINE fstr_bool match_insensitive(String a, String b); +FSTRING_INLINE fstr_bool match_part_insensitive(char *a, char *b, int32_t *len); +FSTRING_INLINE fstr_bool match_part_insensitive(String a, char *b, int32_t *len); +FSTRING_INLINE fstr_bool match_part_insensitive(char *a, char *b); +FSTRING_INLINE fstr_bool match_part_insensitive(String a, char *b); +FSTRING_INLINE fstr_bool match_part_insensitive(char *a, String b); +FSTRING_INLINE fstr_bool match_part_insensitive(String a, String b); +FSTRING_INLINE int32_t compare(char *a, char *b); +FSTRING_INLINE int32_t compare(String a, char *b); +FSTRING_INLINE int32_t compare(char *a, String b); +FSTRING_INLINE int32_t compare(String a, String b); +FSTRING_INLINE int32_t find(char *str, int32_t start, char character); +FSTRING_INLINE int32_t find(String str, int32_t start, char character); +FSTRING_INLINE int32_t find(char *str, int32_t start, char *characters); +FSTRING_INLINE int32_t find(String str, int32_t start, char *characters); +FSTRING_INLINE int32_t find_substr(char *str, int32_t start, String seek); +FSTRING_INLINE int32_t find_substr(String str, int32_t start, String seek); +FSTRING_INLINE int32_t rfind_substr(String str, int32_t start, String seek); +FSTRING_INLINE int32_t find_substr_insensitive(char *str, int32_t start, String seek); +FSTRING_INLINE int32_t find_substr_insensitive(String str, int32_t start, String seek); +FSTRING_INLINE fstr_bool has_substr(char *s, String seek); +FSTRING_INLINE fstr_bool has_substr(String s, String seek); +FSTRING_INLINE fstr_bool has_substr_insensitive(char *s, String seek); +FSTRING_INLINE fstr_bool has_substr_insensitive(String s, String seek); +FSTRING_INLINE int32_t copy_fast_unsafe(char *dest, char *src); +FSTRING_INLINE int32_t copy_fast_unsafe(char *dest, String src); +FSTRING_INLINE fstr_bool copy_checked(String *dest, String src); +FSTRING_INLINE fstr_bool copy_partial(String *dest, char *src); +FSTRING_INLINE fstr_bool copy_partial(String *dest, String src); +FSTRING_INLINE int32_t copy(char *dest, char *src); +FSTRING_INLINE void copy(String *dest, String src); +FSTRING_INLINE void copy(String *dest, char *src); +FSTRING_INLINE fstr_bool append_checked(String *dest, String src); +FSTRING_INLINE fstr_bool append_partial(String *dest, char *src); +FSTRING_INLINE fstr_bool append_partial(String *dest, String src); +FSTRING_INLINE fstr_bool append(String *dest, char c); +FSTRING_INLINE fstr_bool append(String *dest, String src); +FSTRING_INLINE fstr_bool append(String *dest, char *src); +FSTRING_INLINE int32_t str_is_int(char *str); +FSTRING_INLINE fstr_bool str_is_int(String str); +FSTRING_INLINE int32_t str_to_int(char *str); +FSTRING_INLINE int32_t str_to_int(String str); +FSTRING_INLINE int32_t reverse_seek_slash(String str, int32_t pos); +FSTRING_INLINE fstr_bool set_last_folder(String *dir, char *folder_name, char slash); +FSTRING_INLINE fstr_bool set_last_folder(String *dir, String folder_name, char slash); + +#endif + +#endif + +#if !defined(FSTRING_C) && !defined(FSTRING_GUARD) + +FSTRING_INLINE String +make_string(void *str, int32_t size, int32_t mem_size){ return(make_string_cap(str,size,mem_size));} +FSTRING_INLINE String +substr(String str, int32_t start){ return(substr_tail(str,start));} +FSTRING_INLINE fstr_bool +match(char *a, char *b){ return(match_cc(a,b));} +FSTRING_INLINE fstr_bool +match(String a, char *b){ return(match_sc(a,b));} +FSTRING_INLINE fstr_bool +match(char *a, String b){ return(match_cs(a,b));} +FSTRING_INLINE fstr_bool +match(String a, String b){ return(match_ss(a,b));} +FSTRING_INLINE fstr_bool +match_part(char *a, char *b, int32_t *len){ return(match_part_ccl(a,b,len));} +FSTRING_INLINE fstr_bool +match_part(String a, char *b, int32_t *len){ return(match_part_scl(a,b,len));} +FSTRING_INLINE fstr_bool +match_part(char *a, char *b){ return(match_part_cc(a,b));} +FSTRING_INLINE fstr_bool +match_part(String a, char *b){ return(match_part_sc(a,b));} +FSTRING_INLINE fstr_bool +match_part(char *a, String b){ return(match_part_cs(a,b));} +FSTRING_INLINE fstr_bool +match_part(String a, String b){ return(match_part_ss(a,b));} +FSTRING_INLINE fstr_bool +match_insensitive(char *a, char *b){ return(match_insensitive_cc(a,b));} +FSTRING_INLINE fstr_bool +match_insensitive(String a, char *b){ return(match_insensitive_sc(a,b));} +FSTRING_INLINE fstr_bool +match_insensitive(char *a, String b){ return(match_insensitive_cs(a,b));} +FSTRING_INLINE fstr_bool +match_insensitive(String a, String b){ return(match_insensitive_ss(a,b));} +FSTRING_INLINE fstr_bool +match_part_insensitive(char *a, char *b, int32_t *len){ return(match_part_insensitive_ccl(a,b,len));} +FSTRING_INLINE fstr_bool +match_part_insensitive(String a, char *b, int32_t *len){ return(match_part_insensitive_scl(a,b,len));} +FSTRING_INLINE fstr_bool +match_part_insensitive(char *a, char *b){ return(match_part_insensitive_cc(a,b));} +FSTRING_INLINE fstr_bool +match_part_insensitive(String a, char *b){ return(match_part_insensitive_sc(a,b));} +FSTRING_INLINE fstr_bool +match_part_insensitive(char *a, String b){ return(match_part_insensitive_cs(a,b));} +FSTRING_INLINE fstr_bool +match_part_insensitive(String a, String b){ return(match_part_insensitive_ss(a,b));} +FSTRING_INLINE int32_t +compare(char *a, char *b){ return(compare_cc(a,b));} +FSTRING_INLINE int32_t +compare(String a, char *b){ return(compare_sc(a,b));} +FSTRING_INLINE int32_t +compare(char *a, String b){ return(compare_cs(a,b));} +FSTRING_INLINE int32_t +compare(String a, String b){ return(compare_ss(a,b));} +FSTRING_INLINE int32_t +find(char *str, int32_t start, char character){ return(find_c_char(str,start,character));} +FSTRING_INLINE int32_t +find(String str, int32_t start, char character){ return(find_s_char(str,start,character));} +FSTRING_INLINE int32_t +find(char *str, int32_t start, char *characters){ return(find_c_chars(str,start,characters));} +FSTRING_INLINE int32_t +find(String str, int32_t start, char *characters){ return(find_s_chars(str,start,characters));} +FSTRING_INLINE int32_t +find_substr(char *str, int32_t start, String seek){ return(find_substr_c(str,start,seek));} +FSTRING_INLINE int32_t +find_substr(String str, int32_t start, String seek){ return(find_substr_s(str,start,seek));} +FSTRING_INLINE int32_t +rfind_substr(String str, int32_t start, String seek){ return(rfind_substr_s(str,start,seek));} +FSTRING_INLINE int32_t +find_substr_insensitive(char *str, int32_t start, String seek){ return(find_substr_insensitive_c(str,start,seek));} +FSTRING_INLINE int32_t +find_substr_insensitive(String str, int32_t start, String seek){ return(find_substr_insensitive_s(str,start,seek));} +FSTRING_INLINE fstr_bool +has_substr(char *s, String seek){ return(has_substr_c(s,seek));} +FSTRING_INLINE fstr_bool +has_substr(String s, String seek){ return(has_substr_s(s,seek));} +FSTRING_INLINE fstr_bool +has_substr_insensitive(char *s, String seek){ return(has_substr_insensitive_c(s,seek));} +FSTRING_INLINE fstr_bool +has_substr_insensitive(String s, String seek){ return(has_substr_insensitive_s(s,seek));} +FSTRING_INLINE int32_t +copy_fast_unsafe(char *dest, char *src){ return(copy_fast_unsafe_cc(dest,src));} +FSTRING_INLINE int32_t +copy_fast_unsafe(char *dest, String src){ return(copy_fast_unsafe_cs(dest,src));} +FSTRING_INLINE fstr_bool +copy_checked(String *dest, String src){ return(copy_checked_ss(dest,src));} +FSTRING_INLINE fstr_bool +copy_partial(String *dest, char *src){ return(copy_partial_sc(dest,src));} +FSTRING_INLINE fstr_bool +copy_partial(String *dest, String src){ return(copy_partial_ss(dest,src));} +FSTRING_INLINE int32_t +copy(char *dest, char *src){ return(copy_cc(dest,src));} +FSTRING_INLINE void +copy(String *dest, String src){ (copy_ss(dest,src));} +FSTRING_INLINE void +copy(String *dest, char *src){ (copy_sc(dest,src));} +FSTRING_INLINE fstr_bool +append_checked(String *dest, String src){ return(append_checked_ss(dest,src));} +FSTRING_INLINE fstr_bool +append_partial(String *dest, char *src){ return(append_partial_sc(dest,src));} +FSTRING_INLINE fstr_bool +append_partial(String *dest, String src){ return(append_partial_ss(dest,src));} +FSTRING_INLINE fstr_bool +append(String *dest, char c){ return(append_s_char(dest,c));} +FSTRING_INLINE fstr_bool +append(String *dest, String src){ return(append_ss(dest,src));} +FSTRING_INLINE fstr_bool +append(String *dest, char *src){ return(append_sc(dest,src));} +FSTRING_INLINE int32_t +str_is_int(char *str){ return(str_is_int_c(str));} +FSTRING_INLINE fstr_bool +str_is_int(String str){ return(str_is_int_s(str));} +FSTRING_INLINE int32_t +str_to_int(char *str){ return(str_to_int_c(str));} +FSTRING_INLINE int32_t +str_to_int(String str){ return(str_to_int_s(str));} +FSTRING_INLINE int32_t +reverse_seek_slash(String str, int32_t pos){ return(reverse_seek_slash_pos(str,pos));} +FSTRING_INLINE fstr_bool +set_last_folder(String *dir, char *folder_name, char slash){ return(set_last_folder_sc(dir,folder_name,slash));} +FSTRING_INLINE fstr_bool +set_last_folder(String *dir, String folder_name, char slash){ return(set_last_folder_ss(dir,folder_name,slash));} + #endif @@ -158,7 +356,7 @@ FSTRING_LINK fstr_bool string_set_match(String *str_set, int32_t count, S // Character Helpers // -#ifndef FSTRING_GUARD +#if !defined(FSTRING_GUARD) FSTRING_INLINE fstr_bool char_is_slash(char c) { @@ -166,7 +364,7 @@ char_is_slash(char c) } #endif -#ifndef FSTRING_GUARD +#if !defined(FSTRING_GUARD) FSTRING_INLINE char char_to_upper(char c) { @@ -174,7 +372,7 @@ char_to_upper(char c) } #endif -#ifndef FSTRING_GUARD +#if !defined(FSTRING_GUARD) FSTRING_INLINE char char_to_lower(char c) { @@ -182,7 +380,7 @@ char_to_lower(char c) } #endif -#ifndef FSTRING_GUARD +#if !defined(FSTRING_GUARD) FSTRING_INLINE fstr_bool char_is_whitespace(char c) { @@ -190,7 +388,7 @@ char_is_whitespace(char c) } #endif -#ifndef FSTRING_GUARD +#if !defined(FSTRING_GUARD) FSTRING_INLINE fstr_bool char_is_alpha_numeric(char c) { @@ -198,7 +396,7 @@ char_is_alpha_numeric(char c) } #endif -#ifndef FSTRING_GUARD +#if !defined(FSTRING_GUARD) FSTRING_INLINE fstr_bool char_is_alpha_numeric_true(char c) { @@ -206,7 +404,7 @@ char_is_alpha_numeric_true(char c) } #endif -#ifndef FSTRING_GUARD +#if !defined(FSTRING_GUARD) FSTRING_INLINE fstr_bool char_is_alpha(char c) { @@ -214,7 +412,7 @@ char_is_alpha(char c) } #endif -#ifndef FSTRING_GUARD +#if !defined(FSTRING_GUARD) FSTRING_INLINE fstr_bool char_is_alpha_true(char c) { @@ -222,7 +420,7 @@ char_is_alpha_true(char c) } #endif -#ifndef FSTRING_GUARD +#if !defined(FSTRING_GUARD) FSTRING_INLINE fstr_bool char_is_hex(char c) { @@ -230,7 +428,7 @@ char_is_hex(char c) } #endif -#ifndef FSTRING_GUARD +#if !defined(FSTRING_GUARD) FSTRING_INLINE fstr_bool char_is_numeric(char c) { @@ -243,18 +441,19 @@ char_is_numeric(char c) // String Making Functions // -#ifndef FSTRING_GUARD +#if !defined(FSTRING_GUARD) FSTRING_INLINE String -string_zero() +string_zero(void) { String str={0}; return(str); } #endif -#ifndef FSTRING_GUARD + +#if !defined(FSTRING_GUARD) FSTRING_INLINE String -make_string(void *str, int32_t size, int32_t mem_size) +make_string_cap(void *str, int32_t size, int32_t mem_size) { String result; result.str = (char*)str; @@ -264,7 +463,7 @@ make_string(void *str, int32_t size, int32_t mem_size) } #endif -#ifndef FSTRING_GUARD +#if !defined(FSTRING_GUARD) FSTRING_INLINE String make_string(void *str, int32_t size){ String result; @@ -275,7 +474,7 @@ make_string(void *str, int32_t size){ } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t str_size(char *str) { @@ -285,7 +484,7 @@ str_size(char *str) } #endif -#ifndef FSTRING_GUARD +#if !defined(FSTRING_GUARD) FSTRING_INLINE String make_string_slowly(void *str) { @@ -297,13 +496,10 @@ make_string_slowly(void *str) } #endif -// TODO(allen): I don't love the substr rule, I chose -// substr(String, start) and substr(String, start, size) -// but I wish I had substr(String, start) and substr(String, start, end) -#ifndef FSTRING_GUARD +#if !defined(FSTRING_GUARD) FSTRING_INLINE String -substr(String str, int32_t start) +substr_tail(String str, int32_t start) { String result; result.str = str.str + start; @@ -313,7 +509,7 @@ substr(String str, int32_t start) } #endif -#ifndef FSTRING_GUARD +#if !defined(FSTRING_GUARD) FSTRING_INLINE String substr(String str, int32_t start, int32_t size) { @@ -328,7 +524,7 @@ substr(String str, int32_t start, int32_t size) } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK String skip_whitespace(String str) { @@ -340,7 +536,7 @@ skip_whitespace(String str) } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK String chop_whitespace(String str) { @@ -352,7 +548,7 @@ chop_whitespace(String str) } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK String skip_chop_whitespace(String str) { @@ -362,7 +558,7 @@ skip_chop_whitespace(String str) } #endif -#ifndef FSTRING_GUARD +#if !defined(FSTRING_GUARD) FSTRING_INLINE String tailstr(String str) { @@ -379,9 +575,10 @@ tailstr(String str) // String Comparison // -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -match(char *a, char *b){ +match_cc(char *a, char *b){ for (int32_t i = 0;; ++i){ if (a[i] != b[i]){ return 0; @@ -393,9 +590,10 @@ match(char *a, char *b){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -match(String a, char *b){ +match_sc(String a, char *b){ int32_t i = 0; for (; i < a.size; ++i){ if (a.str[i] != b[i]){ @@ -409,16 +607,18 @@ match(String a, char *b){ } #endif -#ifndef FSTRING_GUARD + +#if !defined(FSTRING_GUARD) FSTRING_INLINE fstr_bool -match(char *a, String b){ - return(match(b,a)); +match_cs(char *a, String b){ + return(match_sc(b,a)); } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -match(String a, String b){ +match_ss(String a, String b){ if (a.size != b.size){ return 0; } @@ -431,9 +631,10 @@ match(String a, String b){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -match_part(char *a, char *b, int32_t *len){ +match_part_ccl(char *a, char *b, int32_t *len){ int32_t i; for (i = 0; b[i] != 0; ++i){ if (a[i] != b[i]){ @@ -446,9 +647,9 @@ match_part(char *a, char *b, int32_t *len){ #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -match_part(String a, char *b, int32_t *len){ +match_part_scl(String a, char *b, int32_t *len){ int32_t i; for (i = 0; b[i] != 0; ++i){ if (a.str[i] != b[i] || i == a.size){ @@ -460,25 +661,28 @@ match_part(String a, char *b, int32_t *len){ } #endif -#ifndef FSTRING_GUARD + +#if !defined(FSTRING_GUARD) FSTRING_INLINE fstr_bool -match_part(char *a, char *b){ +match_part_cc(char *a, char *b){ int32_t x; - return match_part(a,b,&x); + return match_part_ccl(a,b,&x); } #endif -#ifndef FSTRING_GUARD + +#if !defined(FSTRING_GUARD) FSTRING_INLINE fstr_bool -match_part(String a, char *b){ +match_part_sc(String a, char *b){ int32_t x; - return match_part(a,b,&x); + return match_part_scl(a,b,&x); } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -match_part(char *a, String b){ +match_part_cs(char *a, String b){ for (int32_t i = 0; i != b.size; ++i){ if (a[i] != b.str[i]){ return 0; @@ -488,9 +692,10 @@ match_part(char *a, String b){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -match_part(String a, String b){ +match_part_ss(String a, String b){ if (a.size < b.size){ return 0; } @@ -503,9 +708,10 @@ match_part(String a, String b){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -match_insensitive(char *a, char *b){ +match_insensitive_cc(char *a, char *b){ for (int32_t i = 0;; ++i){ if (char_to_upper(a[i]) != char_to_upper(b[i])){ @@ -518,9 +724,10 @@ match_insensitive(char *a, char *b){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -match_insensitive(String a, char *b){ +match_insensitive_sc(String a, char *b){ int32_t i = 0; for (; i < a.size; ++i){ if (char_to_upper(a.str[i]) != @@ -535,16 +742,18 @@ match_insensitive(String a, char *b){ } #endif -#ifndef FSTRING_GUARD + +#if !defined(FSTRING_GUARD) FSTRING_INLINE fstr_bool -match_insensitive(char *a, String b){ - return match_insensitive(b,a); +match_insensitive_cs(char *a, String b){ + return match_insensitive_sc(b,a); } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -match_insensitive(String a, String b){ +match_insensitive_ss(String a, String b){ if (a.size != b.size){ return 0; } @@ -558,9 +767,10 @@ match_insensitive(String a, String b){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -match_part_insensitive(char *a, char *b, int32_t *len){ +match_part_insensitive_ccl(char *a, char *b, int32_t *len){ int32_t i; for (i = 0; b[i] != 0; ++i){ if (char_to_upper(a[i]) != char_to_upper(b[i])){ @@ -572,9 +782,10 @@ match_part_insensitive(char *a, char *b, int32_t *len){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -match_part_insensitive(String a, char *b, int32_t *len){ +match_part_insensitive_scl(String a, char *b, int32_t *len){ int32_t i; for (i = 0; b[i] != 0; ++i){ if (char_to_upper(a.str[i]) != char_to_upper(b[i]) || @@ -587,25 +798,28 @@ match_part_insensitive(String a, char *b, int32_t *len){ } #endif -#ifndef FSTRING_GUARD + +#if !defined(FSTRING_GUARD) FSTRING_INLINE fstr_bool -match_part_insensitive(char *a, char *b){ +match_part_insensitive_cc(char *a, char *b){ int32_t x; - return match_part(a,b,&x); + return match_part_insensitive_ccl(a,b,&x); } #endif -#ifndef FSTRING_GUARD + +#if !defined(FSTRING_GUARD) FSTRING_INLINE fstr_bool -match_part_insensitive(String a, char *b){ +match_part_insensitive_sc(String a, char *b){ int32_t x; - return match_part(a,b,&x); + return match_part_insensitive_scl(a,b,&x); } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -match_part_insensitive(char *a, String b){ +match_part_insensitive_cs(char *a, String b){ for (int32_t i = 0; i != b.size; ++i){ if (char_to_upper(a[i]) != char_to_upper(b.str[i])){ return 0; @@ -615,9 +829,10 @@ match_part_insensitive(char *a, String b){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -match_part_insensitive(String a, String b){ +match_part_insensitive_ss(String a, String b){ if (a.size < b.size){ return 0; } @@ -630,9 +845,10 @@ match_part_insensitive(String a, String b){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t -compare(char *a, char *b){ +compare_cc(char *a, char *b){ int32_t i = 0; while (a[i] == b[i] && a[i] != 0){ ++i; @@ -641,9 +857,10 @@ compare(char *a, char *b){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t -compare(String a, char *b){ +compare_sc(String a, char *b){ int32_t i = 0; while (i < a.size && a.str[i] == b[i]){ ++i; @@ -662,16 +879,18 @@ compare(String a, char *b){ } #endif -#ifndef FSTRING_GUARD + +#if !defined(FSTRING_GUARD) FSTRING_INLINE int32_t -compare(char *a, String b){ - return -compare(b,a); +compare_cs(char *a, String b){ + return -compare_sc(b,a); } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t -compare(String a, String b){ +compare_ss(String a, String b){ int32_t i = 0; while (i < a.size && i < b.size && a.str[i] == b.str[i]){ ++i; @@ -689,27 +908,30 @@ compare(String a, String b){ // Finding Characters and Substrings // -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t -find(char *str, int32_t start, char character){ +find_c_char(char *str, int32_t start, char character){ int32_t i = start; while (str[i] != character && str[i] != 0) ++i; return i; } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t -find(String str, int32_t start, char character){ +find_s_char(String str, int32_t start, char character){ int32_t i = start; while (i < str.size && str.str[i] != character) ++i; return i; } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t -find(char *str, int32_t start, char *characters){ +find_c_chars(char *str, int32_t start, char *characters){ int32_t i = start, j; while (str[i] != 0){ for (j = 0; characters[j]; ++j){ @@ -723,9 +945,10 @@ find(char *str, int32_t start, char *characters){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t -find(String str, int32_t start, char *characters){ +find_s_chars(String str, int32_t start, char *characters){ int32_t i = start, j; while (i < str.size){ for (j = 0; characters[j]; ++j){ @@ -739,9 +962,10 @@ find(String str, int32_t start, char *characters){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t -find_substr(char *str, int32_t start, String seek){ +find_substr_c(char *str, int32_t start, String seek){ int32_t i, j, k; fstr_bool hit; @@ -766,9 +990,10 @@ find_substr(char *str, int32_t start, String seek){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t -find_substr(String str, int32_t start, String seek){ +find_substr_s(String str, int32_t start, String seek){ int32_t stop_at, i, j, k; fstr_bool hit; @@ -794,9 +1019,10 @@ find_substr(String str, int32_t start, String seek){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t -rfind_substr(String str, int32_t start, String seek){ +rfind_substr_s(String str, int32_t start, String seek){ int32_t i, j, k; fstr_bool hit; @@ -824,9 +1050,10 @@ rfind_substr(String str, int32_t start, String seek){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t -find_substr_insensitive(char *str, int32_t start, String seek){ +find_substr_insensitive_c(char *str, int32_t start, String seek){ int32_t i, j, k; fstr_bool hit; char a_upper, b_upper; @@ -854,9 +1081,10 @@ find_substr_insensitive(char *str, int32_t start, String seek){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t -find_substr_insensitive(String str, int32_t start, String seek){ +find_substr_insensitive_s(String str, int32_t start, String seek){ int32_t i, j, k; int32_t stop_at; fstr_bool hit; @@ -886,31 +1114,35 @@ find_substr_insensitive(String str, int32_t start, String seek){ } #endif -#ifndef FSTRING_GUARD + +#if !defined(FSTRING_GUARD) FSTRING_INLINE fstr_bool -has_substr(char *s, String seek){ - return (s[find_substr(s, 0, seek)] != 0); +has_substr_c(char *s, String seek){ + return (s[find_substr_c(s, 0, seek)] != 0); } #endif -#ifndef FSTRING_GUARD + +#if !defined(FSTRING_GUARD) FSTRING_INLINE fstr_bool -has_substr(String s, String seek){ - return (find_substr(s, 0, seek) < s.size); +has_substr_s(String s, String seek){ + return (find_substr_s(s, 0, seek) < s.size); } #endif -#ifndef FSTRING_GUARD + +#if !defined(FSTRING_GUARD) FSTRING_INLINE fstr_bool -has_substr_insensitive(char *s, String seek){ - return (s[find_substr_insensitive(s, 0, seek)] != 0); +has_substr_insensitive_c(char *s, String seek){ + return (s[find_substr_insensitive_c(s, 0, seek)] != 0); } #endif -#ifndef FSTRING_GUARD + +#if !defined(FSTRING_GUARD) FSTRING_INLINE fstr_bool -has_substr_insensitive(String s, String seek){ - return (find_substr_insensitive(s, 0, seek) < s.size); +has_substr_insensitive_s(String s, String seek){ + return (find_substr_insensitive_s(s, 0, seek) < s.size); } #endif @@ -918,9 +1150,10 @@ has_substr_insensitive(String s, String seek){ // String Copies and Appends // -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t -copy_fast_unsafe(char *dest, char *src){ +copy_fast_unsafe_cc(char *dest, char *src){ char *start = dest; while (*src != 0){ *dest = *src; @@ -931,9 +1164,10 @@ copy_fast_unsafe(char *dest, char *src){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t -copy_fast_unsafe(char *dest, String src){ +copy_fast_unsafe_cs(char *dest, String src){ int32_t i = 0; while (i != src.size){ dest[i] = src.str[i]; @@ -943,9 +1177,10 @@ copy_fast_unsafe(char *dest, String src){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -copy_checked(String *dest, String src){ +copy_checked_ss(String *dest, String src){ char *dest_str; int32_t i; if (dest->memory_size < src.size){ @@ -960,9 +1195,10 @@ copy_checked(String *dest, String src){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -copy_partial(String *dest, char *src){ +copy_partial_sc(String *dest, char *src){ int32_t i = 0; int32_t memory_size = dest->memory_size; char *dest_str = dest->str; @@ -978,14 +1214,15 @@ copy_partial(String *dest, char *src){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -copy_partial(String *dest, String src){ +copy_partial_ss(String *dest, String src){ char *dest_str = dest->str; int32_t memory_size = dest->memory_size; - fstr_bool result = false; + fstr_bool result = 0; if (memory_size >= src.size){ - result = true; + result = 1; memory_size = src.size; } for (int32_t i = 0; i < memory_size; ++i){ @@ -996,33 +1233,37 @@ copy_partial(String *dest, String src){ } #endif -#ifndef FSTRING_GUARD + +#if !defined(FSTRING_GUARD) FSTRING_INLINE int32_t -copy(char *dest, char *src){ - return copy_fast_unsafe(dest, src); +copy_cc(char *dest, char *src){ + return copy_fast_unsafe_cc(dest, src); } #endif -#ifndef FSTRING_GUARD + +#if !defined(FSTRING_GUARD) FSTRING_INLINE void -copy(String *dest, String src){ - copy_checked(dest, src); +copy_ss(String *dest, String src){ + copy_checked_ss(dest, src); } #endif -#ifndef FSTRING_GUARD + +#if !defined(FSTRING_GUARD) FSTRING_INLINE void -copy(String *dest, char *src){ - copy_partial(dest, src); +copy_sc(String *dest, char *src){ + copy_partial_sc(dest, src); } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -append_checked(String *dest, String src){ +append_checked_ss(String *dest, String src){ String end; end = tailstr(*dest); - fstr_bool result = copy_checked(&end, src); + fstr_bool result = copy_checked_ss(&end, src); // NOTE(allen): This depends on end.size still being 0 if // the check failed and no coppy occurred. dest->size += end.size; @@ -1030,29 +1271,32 @@ append_checked(String *dest, String src){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -append_partial(String *dest, char *src){ +append_partial_sc(String *dest, char *src){ String end = tailstr(*dest); - fstr_bool result = copy_partial(&end, src); + fstr_bool result = copy_partial_sc(&end, src); dest->size += end.size; return result; } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -append_partial(String *dest, String src){ +append_partial_ss(String *dest, String src){ String end = tailstr(*dest); - fstr_bool result = copy_partial(&end, src); + fstr_bool result = copy_partial_ss(&end, src); dest->size += end.size; return result; } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -append(String *dest, char c){ +append_s_char(String *dest, char c){ fstr_bool result = 0; if (dest->size < dest->memory_size){ dest->str[dest->size++] = c; @@ -1062,21 +1306,23 @@ append(String *dest, char c){ } #endif -#ifndef FSTRING_GUARD + +#if !defined(FSTRING_GUARD) FSTRING_INLINE fstr_bool -append(String *dest, String src){ - return append_partial(dest, src); +append_ss(String *dest, String src){ + return append_partial_ss(dest, src); } #endif -#ifndef FSTRING_GUARD + +#if !defined(FSTRING_GUARD) FSTRING_INLINE fstr_bool -append(String *dest, char *src){ - return append_partial(dest, src); +append_sc(String *dest, char *src){ + return append_partial_sc(dest, src); } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool terminate_with_null(String *str){ fstr_bool result = 0; @@ -1088,7 +1334,7 @@ terminate_with_null(String *str){ } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool append_padding(String *dest, char c, int32_t target_size){ fstr_bool result = 1; @@ -1096,7 +1342,7 @@ append_padding(String *dest, char c, int32_t target_size){ int32_t r = 0; if (offset > 0){ for (r = 0; r < offset; ++r){ - if (append(dest, c) == 0){ + if (append_s_char(dest, c) == 0){ result = 0; break; } @@ -1111,7 +1357,7 @@ append_padding(String *dest, char c, int32_t target_size){ // Other Edits // -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK void replace_char(String *str, char replace, char with){ char *s = str->str; @@ -1126,7 +1372,7 @@ replace_char(String *str, char replace, char with){ // String <-> Number Conversions // -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t int_to_str_size(int32_t x){ int32_t size = 1; @@ -1142,7 +1388,7 @@ int_to_str_size(int32_t x){ } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool int_to_str(String *dest, int32_t x){ fstr_bool result = 1; @@ -1190,7 +1436,7 @@ int_to_str(String *dest, int32_t x){ } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool append_int_to_str(String *dest, int32_t x){ String last_part = tailstr(*dest); @@ -1202,7 +1448,7 @@ append_int_to_str(String *dest, int32_t x){ } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t u64_to_str_size(uint64_t x){ int32_t size; @@ -1221,7 +1467,7 @@ u64_to_str_size(uint64_t x){ } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool u64_to_str(String *dest, uint64_t x){ fstr_bool result = 1; @@ -1260,7 +1506,7 @@ u64_to_str(String *dest, uint64_t x){ } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool append_u64_to_str(String *dest, uint64_t x){ String last_part = tailstr(*dest); @@ -1273,18 +1519,18 @@ append_u64_to_str(String *dest, uint64_t x){ #endif #ifndef FSTRING_GUARD -struct Float_To_Str_Variables{ +typedef struct Float_To_Str_Variables{ fstr_bool negative; int32_t int_part; int32_t dec_part; -}; +} Float_To_Str_Variables; -Float_To_Str_Variables +static Float_To_Str_Variables get_float_vars(float x){ Float_To_Str_Variables vars = {0}; if (x < 0){ - vars.negative = true; + vars.negative = 1; x = -x; } @@ -1295,7 +1541,7 @@ get_float_vars(float x){ } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t float_to_str_size(float x){ Float_To_Str_Variables vars = get_float_vars(x); @@ -1305,25 +1551,25 @@ float_to_str_size(float x){ } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool append_float_to_str(String *dest, float x){ fstr_bool result = 1; Float_To_Str_Variables vars = get_float_vars(x); if (vars.negative){ - append(dest, '-'); + append_s_char(dest, '-'); } append_int_to_str(dest, vars.int_part); - append(dest, '.'); + append_s_char(dest, '.'); append_int_to_str(dest, vars.dec_part); return(result); } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool float_to_str(String *dest, float x){ fstr_bool result = 1; @@ -1333,13 +1579,14 @@ float_to_str(String *dest, float x){ } #endif -#ifdef FSTRING_IMPLEMENTATION -FSTRING_LINK fstr_bool -str_is_int(String str){ - fstr_bool result = true; - for (int32_t i = 0; i < str.size; ++i){ - if (!char_is_numeric(str.str[i])){ - result = false; + +#if defined(FSTRING_IMPLEMENTATION) +FSTRING_LINK int32_t +str_is_int_c(char *str){ + fstr_bool result = 1; + for (; *str; ++str){ + if (!char_is_numeric(*str)){ + result = 0; break; } } @@ -1347,9 +1594,25 @@ str_is_int(String str){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) +FSTRING_LINK fstr_bool +str_is_int_s(String str){ + fstr_bool result = 1; + for (int32_t i = 0; i < str.size; ++i){ + if (!char_is_numeric(str.str[i])){ + result = 0; + break; + } + } + return(result); +} +#endif + + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t -str_to_int(char *str){ +str_to_int_c(char *str){ int32_t x = 0; for (; *str; ++str){ if (*str >= '0' || *str <= '9'){ @@ -1365,9 +1628,10 @@ str_to_int(char *str){ } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t -str_to_int(String str){ +str_to_int_s(String str){ int32_t x, i; if (str.size == 0){ x = 0; @@ -1383,7 +1647,7 @@ str_to_int(String str){ } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t hexchar_to_int(char c){ int32_t x = 0; @@ -1400,14 +1664,14 @@ hexchar_to_int(char c){ } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK char int_to_hexchar(int32_t x){ return (x<10)?((char)x+'0'):((char)x+'a'-10); } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK uint32_t hexstr_to_int(String str){ uint32_t x; @@ -1426,7 +1690,7 @@ hexstr_to_int(String str){ } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool color_to_hexstr(String *s, uint32_t color){ fstr_bool result = 0; @@ -1455,7 +1719,7 @@ color_to_hexstr(String *s, uint32_t color){ } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool hexstr_to_color(String s, uint32_t *out){ fstr_bool result = 0; @@ -1479,9 +1743,10 @@ hexstr_to_color(String s, uint32_t *out){ // Directory String Management // -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK int32_t -reverse_seek_slash(String str, int32_t pos){ +reverse_seek_slash_pos(String str, int32_t pos){ int32_t i = str.size - 1 - pos; while (i >= 0 && !char_is_slash(str.str[i])){ --i; @@ -1490,70 +1755,66 @@ reverse_seek_slash(String str, int32_t pos){ } #endif -#ifndef FSTRING_GUARD +#if !defined(FSTRING_GUARD) FSTRING_INLINE int32_t reverse_seek_slash(String str){ - return(reverse_seek_slash(str, 0)); + return(reverse_seek_slash_pos(str, 0)); } #endif -#ifndef FSTRING_GUARD +#if !defined(FSTRING_GUARD) FSTRING_INLINE String front_of_directory(String dir){ - return substr(dir, reverse_seek_slash(dir) + 1); + return substr_tail(dir, reverse_seek_slash(dir) + 1); } #endif -#ifndef FSTRING_GUARD +#if !defined(FSTRING_GUARD) FSTRING_INLINE String path_of_directory(String dir){ return substr(dir, 0, reverse_seek_slash(dir) + 1); } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -set_last_folder(String *dir, char *folder_name, char slash){ - char str[2]; +set_last_folder_sc(String *dir, char *folder_name, char slash){ fstr_bool result = 0; int32_t size = reverse_seek_slash(*dir) + 1; dir->size = size; - str[0] = slash; - str[1] = 0; - if (append(dir, folder_name)){ - if (append(dir, str)){ + if (append_sc(dir, folder_name)){ + if (append_s_char(dir, slash)){ result = 1; } } if (!result){ dir->size = size; } - return result; + return(result); } #endif -#ifdef FSTRING_IMPLEMENTATION + +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool -set_last_folder(String *dir, String folder_name, char slash){ - char str[2]; +set_last_folder_ss(String *dir, String folder_name, char slash){ fstr_bool result = 0; int32_t size = reverse_seek_slash(*dir) + 1; dir->size = size; - str[0] = slash; - str[1] = 0; - if (append(dir, folder_name)){ - if (append(dir, str)){ + if (append_ss(dir, folder_name)){ + if (append_s_char(dir, slash)){ result = 1; } } if (!result){ dir->size = size; } - return result; + return(result); } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK String file_extension(String str){ int32_t i; @@ -1561,15 +1822,15 @@ file_extension(String str){ if (str.str[i] == '.') break; } ++i; - return make_string(str.str+i, str.size-i); + return(make_string(str.str+i, str.size-i)); } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool remove_last_folder(String *str){ fstr_bool result = 0; - int32_t end = reverse_seek_slash(*str, 1); + int32_t end = reverse_seek_slash_pos(*str, 1); if (end >= 0){ result = 1; str->size = end + 1; @@ -1579,15 +1840,15 @@ remove_last_folder(String *str){ #endif // TODO(allen): Add hash-table extension to string sets. -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) FSTRING_LINK fstr_bool string_set_match(String *str_set, int32_t count, String str, int32_t *match_index){ - fstr_bool result = false; + fstr_bool result = 0; int32_t i = 0; for (; i < count; ++i, ++str_set){ - if (match(*str_set, str)){ + if (match_ss(*str_set, str)){ *match_index = i; - result = true; + result = 1; break; } } @@ -1605,10 +1866,10 @@ string_set_match(String *str_set, int32_t count, String str, int32_t *match_inde # define ArrayCount(a) ((sizeof(a))/sizeof(*a)) #endif -struct Absolutes{ +typedef struct Absolutes{ String a[8]; int32_t count; -}; +} Absolutes; static void get_absolutes(String name, Absolutes *absolutes, fstr_bool implicit_first, fstr_bool implicit_last){ @@ -1657,7 +1918,7 @@ get_absolutes(String name, Absolutes *absolutes, fstr_bool implicit_first, fstr_ } static fstr_bool -wildcard_match(Absolutes *absolutes, char *x, int32_t case_sensitive){ +wildcard_match_c(Absolutes *absolutes, char *x, int32_t case_sensitive){ fstr_bool r = 1; String *a = absolutes->a; @@ -1665,12 +1926,12 @@ wildcard_match(Absolutes *absolutes, char *x, int32_t case_sensitive){ fstr_bool (*match_part_func)(char*, String); if (case_sensitive){ - match_func = match; - match_part_func = match_part; + match_func = match_cs; + match_part_func = match_part_cs; } else{ - match_func = match_insensitive; - match_part_func = match_part_insensitive; + match_func = match_insensitive_cs; + match_part_func = match_part_insensitive_cs; } if (absolutes->count == 1){ @@ -1711,22 +1972,22 @@ wildcard_match(Absolutes *absolutes, char *x, int32_t case_sensitive){ } } } - return r; + return(r); } static fstr_bool -wildcard_match(Absolutes *absolutes, String x, int32_t case_sensitive){ +wildcard_match_s(Absolutes *absolutes, String x, int32_t case_sensitive){ terminate_with_null(&x); - return wildcard_match(absolutes, x.str, case_sensitive); + return(wildcard_match_c(absolutes, x.str, case_sensitive)); } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) #undef FSTRING_IMPLEMENTATION #endif -#ifndef FSTRING_GUARD +#if !defined(FSTRING_GUARD) #define FSTRING_GUARD #endif diff --git a/4coder_table.cpp b/4coder_table.cpp index 2748deb2..936d4bf3 100644 --- a/4coder_table.cpp +++ b/4coder_table.cpp @@ -188,7 +188,7 @@ static int32_t tbl_string_compare(void *a, void *b, void *arg){ String *stra = (String*)a; String *strb = (String*)b; - int32_t result = !match(*stra, *strb); + int32_t result = !match_ss(*stra, *strb); return(result); } @@ -217,7 +217,7 @@ tbl_offset_string_compare(void *a, void *b, void *arg){ Offset_String *ostrb = (Offset_String*)b; String stra = make_string((char*)arg + ostra->offset, ostra->size); String strb = make_string((char*)arg + ostrb->offset, ostrb->size); - int32_t result = !match(stra, strb); + int32_t result = !match_ss(stra, strb); return(result); } diff --git a/4cpp_lexer.h b/4cpp_lexer.h index 3c9b3852..c5bea44e 100644 --- a/4cpp_lexer.h +++ b/4cpp_lexer.h @@ -398,7 +398,7 @@ sub_match_list(char *data, int size, int pos, String_List list, int sub_size){ str_main = substr(str_main, 0, sub_size); for (i = 0; i < list.count; ++i){ str_check = list.data[i].str; - if (match(str_main, str_check)){ + if (match_sc(str_main, str_check)){ result.index = i; result.new_pos = pos + sub_size; break; @@ -408,7 +408,7 @@ sub_match_list(char *data, int size, int pos, String_List list, int sub_size){ else{ for (i = 0; i < list.count; ++i){ str_check = list.data[i].str; - if (match_part(str_main, str_check, &l)){ + if (match_part_scl(str_main, str_check, &l)){ result.index = i; result.new_pos = pos + l; break; @@ -607,7 +607,7 @@ cpp_read_alpha_numeric(char *data, int size, int pos, bool in_if_body){ String word; word.size = result.token.size; word.str = data + result.token.start; - if (match(word, "defined")){ + if (match_ss(word, make_lit_string("defined"))){ result.token.type = CPP_TOKEN_DEFINED; result.token.flags |= CPP_TFLAG_IS_OPERATOR; result.token.flags |= CPP_TFLAG_IS_KEYWORD; diff --git a/4ed.cpp b/4ed.cpp index e8ee452a..b191e165 100644 --- a/4ed.cpp +++ b/4ed.cpp @@ -141,7 +141,7 @@ consume_input(Available_Input *available, i32 input_type, char *consumer){ record->consumed = 1; if (consumer){ String str = make_fixed_width_string(record->consumer); - copy(&str, consumer); + copy_sc(&str, consumer); terminate_with_null(&str); } else{ @@ -336,7 +336,7 @@ COMMAND_DECL(reopen){ USE_VIEW(view); REQ_FILE(file, view); - if (match(file->name.source_path, file->name.live_name)) return; + if (match_ss(file->name.source_path, file->name.live_name)) return; if (file->canon.name.size != 0){ Plat_Handle handle; @@ -1174,7 +1174,7 @@ init_command_line_settings(App_Settings *settings, Plat_Settings *plat_settings, case CLAct_InitialFilePosition: { if (i < clparams.argc){ - settings->initial_line = str_to_int(clparams.argv[i]); + settings->initial_line = str_to_int_c(clparams.argv[i]); } action = CLAct_Nothing; }break; @@ -1183,8 +1183,8 @@ init_command_line_settings(App_Settings *settings, Plat_Settings *plat_settings, { if (i + 1 < clparams.argc){ plat_settings->set_window_size = true; - plat_settings->window_w = str_to_int(clparams.argv[i]); - plat_settings->window_h = str_to_int(clparams.argv[i+1]); + plat_settings->window_w = str_to_int_c(clparams.argv[i]); + plat_settings->window_h = str_to_int_c(clparams.argv[i+1]); ++i; } @@ -1202,8 +1202,8 @@ init_command_line_settings(App_Settings *settings, Plat_Settings *plat_settings, { if (i + 1 < clparams.argc){ plat_settings->set_window_pos = true; - plat_settings->window_x = str_to_int(clparams.argv[i]); - plat_settings->window_y = str_to_int(clparams.argv[i+1]); + plat_settings->window_x = str_to_int_c(clparams.argv[i]); + plat_settings->window_y = str_to_int_c(clparams.argv[i+1]); ++i; } @@ -1213,7 +1213,7 @@ init_command_line_settings(App_Settings *settings, Plat_Settings *plat_settings, case CLAct_FontSize: { if (i < clparams.argc){ - settings->font_size = str_to_int(clparams.argv[i]); + settings->font_size = str_to_int_c(clparams.argv[i]); } action = CLAct_Nothing; }break; @@ -1601,7 +1601,7 @@ App_Init_Sig(app_init){ // TODO(allen): more robust allocation solution for the clipboard if (clipboard.str){ String *dest = working_set_next_clipboard_string(&models->mem.general, &models->working_set, clipboard.size); - copy(dest, make_string((char*)clipboard.str, clipboard.size)); + copy_ss(dest, make_string((char*)clipboard.str, clipboard.size)); } // NOTE(allen): style setup @@ -1642,7 +1642,7 @@ update_cli_handle_with_file(System_Functions *system, Models *models, if (system->cli_end_update(cli)){ char str_space[256]; String str = make_fixed_width_string(str_space); - append(&str, "exited with code "); + append_ss(&str, make_lit_string("exited with code ")); append_int_to_str(&str, cli->exit); output_file_append(system, models, file, str, cursor_at_end); result = -1; diff --git a/4ed_api_implementation.cpp b/4ed_api_implementation.cpp index 270eecd0..11d3dc47 100644 --- a/4ed_api_implementation.cpp +++ b/4ed_api_implementation.cpp @@ -221,17 +221,17 @@ DOC_SEE(Command_Line_Input_Flag) file = get_file_from_identifier(system, working_set, buffer); if (file){ if (file->settings.read_only == 0){ - append(&feedback_str, "ERROR: "); - append(&feedback_str, file->name.live_name); - append(&feedback_str, " is not a read-only buffer\n"); + append_ss(&feedback_str, make_lit_string("ERROR: ")); + append_ss(&feedback_str, file->name.live_name); + append_ss(&feedback_str, make_lit_string(" is not a read-only buffer\n")); do_feedback_message(system, models, feedback_str); result = false; goto done; } if (file->settings.never_kill){ - append(&feedback_str, "The buffer "); - append(&feedback_str, file->name.live_name); - append(&feedback_str, " is not killable"); + append_ss(&feedback_str, make_lit_string("The buffer ")); + append_ss(&feedback_str, file->name.live_name); + append_ss(&feedback_str, make_lit_string(" is not killable")); do_feedback_message(system, models, feedback_str); result = false; goto done; @@ -240,7 +240,8 @@ DOC_SEE(Command_Line_Input_Flag) else if (buffer.name){ file = working_set_alloc_always(working_set, general); if (file == 0){ - append(&feedback_str, "ERROR: unable to allocate a new buffer\n"); + append_ss(&feedback_str, + make_lit_string("ERROR: unable to allocate a new buffer\n")); do_feedback_message(system, models, feedback_str); result = false; goto done; @@ -277,7 +278,8 @@ DOC_SEE(Command_Line_Input_Flag) } } else{ - append(&feedback_str, "did not begin command-line command because the target buffer is already in use\n"); + append_ss(&feedback_str, + make_lit_string("did not begin command-line command because the target buffer is already in use\n")); do_feedback_message(system, models, feedback_str); result = false; goto done; @@ -326,7 +328,7 @@ DOC_SEE(Command_Line_Input_Flag) } } else{ - append(&feedback_str, "ERROR: no available process slot\n"); + append_ss(&feedback_str, make_lit_string("ERROR: no available process slot\n")); do_feedback_message(system, models, feedback_str); result = false; goto done; @@ -357,7 +359,7 @@ DOC_SEE(The_4coder_Clipboard) Working_Set *working = &models->working_set; String *dest = working_set_next_clipboard_string(general, working, len); - copy(dest, make_string(str, len)); + copy_ss(dest, make_string(str, len)); system->post_clipboard(*dest); } @@ -396,8 +398,8 @@ DOC_SEE(The_4coder_Clipboard) if (str){ size = str->size; if (out){ - String out_str = make_string(out, 0, len); - copy(&out_str, *str); + String out_str = make_string_cap(out, 0, len); + copy_ss(&out_str, *str); } } @@ -1904,7 +1906,7 @@ DOC(This call changes 4coder's color pallet to one of the built in themes.) Style *s = styles->styles; for (i = 0; i < count; ++i, ++s){ - if (match(s->name, theme_name)){ + if (match_ss(s->name, theme_name)){ style_copy(main_style(cmd->models), s); break; } diff --git a/4ed_file.cpp b/4ed_file.cpp index 7753dec0..277f20e5 100644 --- a/4ed_file.cpp +++ b/4ed_file.cpp @@ -364,7 +364,7 @@ tbl_name_compare(void *a, void *b, void *arg){ File_Name_Entry *fb = (File_Name_Entry*)b; i32 result = 1; - if (match(*fa, fb->name)){ + if (match_ss(*fa, fb->name)){ result = 0; } @@ -635,7 +635,7 @@ working_set_lookup_file(Working_Set *working_set, String string){ used_nodes = &working_set->used_sentinel; for (dll_items(node, used_nodes)){ file = (Editing_File*)node; - if (string.size == 0 || match(string, file->name.live_name)){ + if (string.size == 0 || match_ss(string, file->name.live_name)){ break; } } @@ -647,7 +647,7 @@ working_set_lookup_file(Working_Set *working_set, String string){ used_nodes = &working_set->used_sentinel; for (dll_items(node, used_nodes)){ file = (Editing_File*)node; - if (string.size == 0 || has_substr(file->name.live_name, string)){ + if (string.size == 0 || has_substr_s(file->name.live_name, string)){ break; } } @@ -690,7 +690,9 @@ hot_directory_quick_partition(File_Info *infos, i32 start, i32 pivot){ for (i32 i = start; i < pivot; ++i, ++a){ i32 comp = 0; comp = p->folder - a->folder; - if (comp == 0) comp = compare(a->filename, p->filename); + if (comp == 0){ + comp = compare_cc(a->filename, p->filename); + } if (comp < 0){ Swap(File_Info, *a, infos[start]); ++start; @@ -717,7 +719,7 @@ hot_directory_fixup(Hot_Directory *hot_directory, Working_Set *working_set){ inline void hot_directory_set(System_Functions *system, Hot_Directory *hot_directory, String str, Working_Set *working_set){ - b32 success = copy_checked(&hot_directory->string, str); + b32 success = copy_checked_ss(&hot_directory->string, str); terminate_with_null(&hot_directory->string); if (success){ if (str.size > 0){ @@ -741,8 +743,8 @@ hot_directory_init(Hot_Directory *hot_directory, String base, String dir, char s hot_directory->string = base; hot_directory->string.str[255] = 0; hot_directory->string.size = 0; - copy(&hot_directory->string, dir); - append(&hot_directory->string, slash); + copy_ss(&hot_directory->string, dir); + append_s_char(&hot_directory->string, slash); hot_directory->slash = slash; } @@ -755,7 +757,7 @@ internal b32 filename_match(String query, Absolutes *absolutes, String filename, b32 case_sensitive){ b32 result; result = (query.size == 0); - if (!result) result = wildcard_match(absolutes, filename, case_sensitive); + if (!result) result = wildcard_match_s(absolutes, filename, case_sensitive); return result; } @@ -858,15 +860,15 @@ internal void buffer_get_new_name(Working_Set *working_set, Editing_File_Name *name, String filename){ Assert(name->live_name.str != 0); - copy_checked(&name->source_path, filename); - copy(&name->live_name, front_of_directory(filename)); + copy_checked_ss(&name->source_path, filename); + copy_ss(&name->live_name, front_of_directory(filename)); if (name->source_path.size == name->live_name.size){ name->extension.size = 0; } else{ String ext = file_extension(filename); - copy(&name->extension, ext); + copy_ss(&name->extension, ext); } { @@ -880,7 +882,7 @@ buffer_get_new_name(Working_Set *working_set, Editing_File_Name *name, String fi for (dll_items(node, used_nodes)){ Editing_File *file_ptr = (Editing_File*)node; if (file_is_ready(file_ptr)){ - if (match(name->live_name, file_ptr->name.live_name)){ + if (match_ss(name->live_name, file_ptr->name.live_name)){ ++file_x; hit_conflict = 1; break; @@ -890,9 +892,9 @@ buffer_get_new_name(Working_Set *working_set, Editing_File_Name *name, String fi if (hit_conflict){ name->live_name.size = original_len; - append(&name->live_name, " <"); + append_ss(&name->live_name, make_lit_string(" <")); append_int_to_str(&name->live_name, file_x); - append(&name->live_name, ">"); + append_s_char(&name->live_name, '>'); } } } @@ -913,7 +915,7 @@ buffer_bind_file(System_Functions *system, General_Memory *general, Working_Set Assert(file->canon.name.size == 0); file->canon.name = make_fixed_width_string(file->canon.name_); - copy(&file->canon.name, canon_filename); + copy_ss(&file->canon.name, canon_filename); terminate_with_null(&file->canon.name); system->add_listener(file->canon.name_); b32 result = working_set_canon_add(general, working_set, file, file->canon.name); @@ -944,9 +946,9 @@ buffer_bind_name(General_Memory *general, Working_Set *working_set, buffer_get_new_name(working_set, &new_name, filename); editing_file_name_init(&file->name); - copy(&file->name.live_name, new_name.live_name); - copy(&file->name.source_path, new_name.source_path); - copy(&file->name.extension, new_name.extension); + copy_ss(&file->name.live_name, new_name.live_name); + copy_ss(&file->name.source_path, new_name.source_path); + copy_ss(&file->name.extension, new_name.extension); b32 result = working_set_name_add(general, working_set, file, file->name.live_name); Assert(result); AllowLocal(result); diff --git a/4ed_file_view.cpp b/4ed_file_view.cpp index d8e68f85..810218de 100644 --- a/4ed_file_view.cpp +++ b/4ed_file_view.cpp @@ -2434,7 +2434,7 @@ working_set_next_clipboard_string(General_Memory *general, Working_Set *working, new_str = (char*)general_memory_allocate(general, str_size+1); } // TODO(allen): What if new_str == 0? - *result = make_string(new_str, 0, str_size); + *result = make_string_cap(new_str, 0, str_size); return result; } @@ -3123,8 +3123,8 @@ view_show_file(View *view){ internal String make_string_terminated(Partition *part, char *str, i32 len){ char *space = (char*)push_array(part, char, len + 1); - String string = make_string(str, len, len+1); - copy_fast_unsafe(space, string); + String string = make_string_cap(str, len, len+1); + copy_fast_unsafe_cs(space, string); string.str = space; terminate_with_null(&string); return(string); @@ -3317,7 +3317,7 @@ interactive_begin_sure_to_kill(System_Functions *system, View *view, Editing_Fil view_show_interactive(system, view, IAct_Sure_To_Kill, IInt_Sure_To_Kill, make_lit_string("Are you sure?")); - copy(&view->dest, file->name.live_name); + copy_ss(&view->dest, file->name.live_name); } enum Try_Kill_Result{ @@ -3638,9 +3638,9 @@ begin_exhaustive_loop(Exhaustive_File_Loop *loop, Hot_Directory *hdir){ loop->infos = hdir->file_list.infos; loop->count = hdir->file_list.count; - copy(&loop->front_name, front_of_directory(hdir->string)); + copy_ss(&loop->front_name, front_of_directory(hdir->string)); get_absolutes(loop->front_name, &loop->absolutes, 1, 1); - copy(&loop->full_path, path_of_directory(hdir->string)); + copy_ss(&loop->full_path, path_of_directory(hdir->string)); loop->r = loop->full_path.size; } @@ -3655,7 +3655,7 @@ get_exhaustive_info(System_Functions *system, Working_Set *working_set, Exhausti result.info = loop->infos + i; loop->full_path.size = loop->r; - append(&loop->full_path, result.info->filename); + append_sc(&loop->full_path, result.info->filename); terminate_with_null(&loop->full_path); Editing_File_Canon_Name canon_name; @@ -3664,8 +3664,8 @@ get_exhaustive_info(System_Functions *system, Working_Set *working_set, Exhausti file = working_set_canon_contains(working_set, canon_name.name); } - String filename = make_string(result.info->filename, - result.info->filename_len, result.info->filename_len+1); + String filename = make_string_cap(result.info->filename, + result.info->filename_len, result.info->filename_len+1); result.is_folder = (result.info->folder != 0); result.name_match = (filename_match(loop->front_name, &loop->absolutes, filename, 0) != 0); @@ -3854,9 +3854,9 @@ internal void append_label(String *string, i32 indent_level, char *message){ i32 r = 0; for (r = 0; r < indent_level; ++r){ - append(string, '>'); + append_s_char(string, '>'); } - append(string, message); + append_sc(string, message); } internal void @@ -3866,8 +3866,8 @@ show_gui_line(GUI_Target *target, String *string, append_label(string, indent_level, message); if (follow_up){ append_padding(string, '-', h_align); - append(string, ' '); - append(string, follow_up); + append_s_char(string, ' '); + append_sc(string, follow_up); } gui_do_text_field(target, *string, string_zero()); } @@ -3878,7 +3878,7 @@ show_gui_int(GUI_Target *target, String *string, string->size = 0; append_label(string, indent_level, message); append_padding(string, '-', h_align); - append(string, ' '); + append_s_char(string, ' '); append_int_to_str(string, x); gui_do_text_field(target, *string, string_zero()); } @@ -3889,7 +3889,7 @@ show_gui_u64(GUI_Target *target, String *string, string->size = 0; append_label(string, indent_level, message); append_padding(string, '-', h_align); - append(string, ' '); + append_s_char(string, ' '); append_u64_to_str(string, x); gui_do_text_field(target, *string, string_zero()); } @@ -3900,9 +3900,9 @@ show_gui_int_int(GUI_Target *target, String *string, string->size = 0; append_label(string, indent_level, message); append_padding(string, '-', h_align); - append(string, ' '); + append_s_char(string, ' '); append_int_to_str(string, x); - append(string, '/'); + append_s_char(string, '/'); append_int_to_str(string, m); gui_do_text_field(target, *string, string_zero()); } @@ -3913,10 +3913,10 @@ show_gui_id(GUI_Target *target, String *string, string->size = 0; append_label(string, indent_level, message); append_padding(string, '-', h_align); - append(string, " [0]: "); + append_ss(string, make_lit_string(" [0]: ")); append_u64_to_str(string, id.id[0]); append_padding(string, ' ', h_align + 26); - append(string, " [1]: "); + append_ss(string, make_lit_string(" [1]: ")); append_u64_to_str(string, id.id[1]); gui_do_text_field(target, *string, string_zero()); } @@ -3927,7 +3927,7 @@ show_gui_float(GUI_Target *target, String *string, string->size = 0; append_label(string, indent_level, message); append_padding(string, '-', h_align); - append(string, ' '); + append_s_char(string, ' '); append_float_to_str(string, x); gui_do_text_field(target, *string, string_zero()); } @@ -3979,11 +3979,11 @@ struct View_Step_Result{ inline void gui_show_mouse(GUI_Target *target, String *string, i32 mx, i32 my){ string->size = 0; - append(string, "mouse: ("); + append_ss(string, make_lit_string("mouse: (")); append_int_to_str(string, mx); - append(string, ","); + append_s_char(string, ','); append_int_to_str(string, my); - append(string, ")"); + append_s_char(string, ')'); gui_do_text_field(target, *string, string_zero()); } @@ -4190,8 +4190,8 @@ step_file_view(System_Functions *system, View *view, View *active_view, Input_Su else{ char message_space[256]; message = make_fixed_width_string(message_space); - copy(&message, make_lit_string("currently selected: ")); - append(&message, info->name); + copy_ss(&message, make_lit_string("currently selected: ")); + append_ss(&message, info->name); gui_do_font_button(target, id, i, message); } } @@ -4384,19 +4384,19 @@ step_file_view(System_Functions *system, View *view, View *active_view, Input_Su if (file_info.name_match){ id.id[0] = (u64)(file_info.info); - String filename = make_string(file_info.info->filename, - file_info.info->filename_len, - file_info.info->filename_len+1); + String filename = make_string_cap(file_info.info->filename, + file_info.info->filename_len, + file_info.info->filename_len+1); if (gui_do_file_option(target, id, filename, file_info.is_folder, file_info.message)){ if (file_info.is_folder){ - set_last_folder(&hdir->string, file_info.info->filename, '/'); + set_last_folder_sc(&hdir->string, file_info.info->filename, '/'); do_new_directory = 1; } else if (use_item_in_list){ complete = 1; - copy(&comp_dest, loop.full_path); + copy_ss(&comp_dest, loop.full_path); } } } @@ -4406,7 +4406,7 @@ step_file_view(System_Functions *system, View *view, View *active_view, Input_Su if (activate_directly){ complete = 1; - copy(&comp_dest, hdir->string); + copy_ss(&comp_dest, hdir->string); } if (do_new_directory){ @@ -4502,7 +4502,7 @@ step_file_view(System_Functions *system, View *view, View *active_view, Input_Su id.id[0] = (u64)(file); if (gui_do_file_option(target, id, file->name.live_name, 0, message)){ complete = 1; - copy(&comp_dest, file->name.live_name); + copy_ss(&comp_dest, file->name.live_name); } } } @@ -4523,7 +4523,7 @@ step_file_view(System_Functions *system, View *view, View *active_view, Input_Su id.id[0] = (u64)(file); if (gui_do_file_option(target, id, file->name.live_name, 0, message)){ complete = 1; - copy(&comp_dest, file->name.live_name); + copy_ss(&comp_dest, file->name.live_name); } } @@ -4558,7 +4558,7 @@ step_file_view(System_Functions *system, View *view, View *active_view, Input_Su if (action != -1){ complete = 1; - copy(&comp_dest, view->dest); + copy_ss(&comp_dest, view->dest); comp_action = action; } }break; @@ -4592,7 +4592,7 @@ step_file_view(System_Functions *system, View *view, View *active_view, Input_Su if (action != -1){ complete = 1; - copy(&comp_dest, view->dest); + copy_ss(&comp_dest, view->dest); comp_action = action; } }break; @@ -4633,7 +4633,7 @@ step_file_view(System_Functions *system, View *view, View *active_view, Input_Su string.size = 0; u64 time = system->now_time(); - append(&string, "last redraw: "); + append_ss(&string, make_lit_string("last redraw: ")); append_u64_to_str(&string, time); gui_do_text_field(target, string, empty_str); @@ -4680,60 +4680,60 @@ step_file_view(System_Functions *system, View *view, View *active_view, Input_Su string.size = 0; if (input_event->is_hold){ - append(&string, "hold: "); + append_ss(&string, make_lit_string("hold: ")); } else{ - append(&string, "press: "); + append_ss(&string, make_lit_string("press: ")); } if (input_event->is_ctrl){ - append(&string, "ctrl-"); + append_ss(&string, make_lit_string("ctrl-")); } else{ - append(&string, " -"); + append_ss(&string, make_lit_string(" -")); } if (input_event->is_alt){ - append(&string, "alt-"); + append_ss(&string, make_lit_string("alt-")); } else{ - append(&string, " -"); + append_ss(&string, make_lit_string(" -")); } if (input_event->is_shift){ - append(&string, "shift "); + append_ss(&string, make_lit_string("shift ")); } else{ - append(&string, " "); + append_ss(&string, make_lit_string(" ")); } if (input_event->key > ' ' && input_event->key <= '~'){ - append(&string, make_string(&input_event->key, 1)); + append_ss(&string, make_string(&input_event->key, 1)); } else if (input_event->key == ' '){ - append(&string, "space"); + append_ss(&string, make_lit_string("space")); } else if (input_event->key == '\n'){ - append(&string, "\\n"); + append_ss(&string, make_lit_string("\\n")); } else if (input_event->key == '\t'){ - append(&string, "\\t"); + append_ss(&string, make_lit_string("\\t")); } else{ String str; str.str = global_key_name(input_event->key, &str.size); if (str.str){ str.memory_size = str.size + 1; - append(&string, str); + append_ss(&string, str); } else{ - append(&string, "unrecognized!"); + append_ss(&string, make_lit_string("unrecognized!")); } } if (input_event->consumer[0] != 0){ append_padding(&string, ' ', 40); - append(&string, input_event->consumer); + append_sc(&string, input_event->consumer); } gui_do_text_field(target, string, empty_str); @@ -4750,21 +4750,21 @@ step_file_view(System_Functions *system, View *view, View *active_view, Input_Su threads, &pending); string.size = 0; - append(&string, "pending jobs: "); + append_ss(&string, make_lit_string("pending jobs: ")); append_int_to_str(&string, pending); gui_do_text_field(target, string, empty_str); for (i32 i = 0; i < 4; ++i){ string.size = 0; - append(&string, "thread "); + append_ss(&string, make_lit_string("thread ")); append_int_to_str(&string, i); - append(&string, ": "); + append_ss(&string, make_lit_string(": ")); if (threads[i]){ - append(&string, "running"); + append_ss(&string, make_lit_string("running")); } else{ - append(&string, "waiting"); + append_ss(&string, make_lit_string("waiting")); } gui_do_text_field(target, string, empty_str); @@ -4775,9 +4775,9 @@ step_file_view(System_Functions *system, View *view, View *active_view, Input_Su General_Memory *general = &models->mem.general; string.size = 0; - append(&string, "part memory: "); + append_ss(&string, make_lit_string("part memory: ")); append_int_to_str(&string, part->pos); - append(&string, "/"); + append_s_char(&string, '/'); append_int_to_str(&string, part->max); gui_do_text_field(target, string, empty_str); @@ -4786,10 +4786,10 @@ step_file_view(System_Functions *system, View *view, View *active_view, Input_Su for (dll_items(bubble, sentinel)){ string.size = 0; if (bubble->flags & MEM_BUBBLE_USED){ - append(&string, " used: "); + append_ss(&string, make_lit_string(" used: ")); } else{ - append(&string, " free: "); + append_ss(&string, make_lit_string(" free: ")); } append_int_to_str(&string, bubble->size); @@ -4826,28 +4826,28 @@ step_file_view(System_Functions *system, View *view, View *active_view, Input_Su View *view_ptr = views_to_inspect[i]; string.size = 0; - append(&string, "view: "); + append_ss(&string, make_lit_string("view: ")); append_int_to_str(&string, view_ptr->persistent.id + 1); gui_do_text_field(target, string, empty_str); string.size = 0; Editing_File *file = view_ptr->file_data.file; - append(&string, " > buffer: "); + append_ss(&string, make_lit_string(" > buffer: ")); if (file){ - append(&string, file->name.live_name); + append_ss(&string, file->name.live_name); gui_do_text_field(target, string, empty_str); string.size = 0; - append(&string, " >> buffer-slot-id: "); + append_ss(&string, make_lit_string(" >> buffer-slot-id: ")); append_int_to_str(&string, file->id.id); } else{ - append(&string, "*NULL*"); + append_ss(&string, make_lit_string("*NULL*")); gui_do_text_field(target, string, empty_str); } if (low_detail){ string.size = 0; - append(&string, "inspect this"); + append_ss(&string, make_lit_string("inspect this")); id.id[0] = (u64)(view_ptr->persistent.id); if (gui_do_button(target, id, string)){ @@ -4858,15 +4858,15 @@ step_file_view(System_Functions *system, View *view, View *active_view, Input_Su gui_show_mouse(target, &string, input.mouse.x, input.mouse.y); -#define SHOW_GUI_BLANK(n) show_gui_line(target, &string, n, 0, "", 0) -#define SHOW_GUI_LINE(n, str) show_gui_line(target, &string, n, 0, " " str, 0) +#define SHOW_GUI_BLANK(n) show_gui_line(target, &string, n, 0, "", 0) +#define SHOW_GUI_LINE(n, str) show_gui_line(target, &string, n, 0, " " str, 0) #define SHOW_GUI_STRING(n, h, str, mes) show_gui_line(target, &string, n, h, " " str " ", mes) -#define SHOW_GUI_INT(n, h, str, v) show_gui_int(target, &string, n, h, " " str " ", v) +#define SHOW_GUI_INT(n, h, str, v) show_gui_int(target, &string, n, h, " " str " ", v) #define SHOW_GUI_INT_INT(n, h, str, v, m) show_gui_int_int(target, &string, n, h, " " str " ", v, m) -#define SHOW_GUI_U64(n, h, str, v) show_gui_u64(target, &string, n, h, " " str " ", v) -#define SHOW_GUI_ID(n, h, str, v) show_gui_id(target, &string, n, h, " " str, v) +#define SHOW_GUI_U64(n, h, str, v) show_gui_u64(target, &string, n, h, " " str " ", v) +#define SHOW_GUI_ID(n, h, str, v) show_gui_id(target, &string, n, h, " " str, v) #define SHOW_GUI_FLOAT(n, h, str, v) show_gui_float(target, &string, n, h, " " str " ", v) -#define SHOW_GUI_BOOL(n, h, str, v) do { if (v) { show_gui_line(target, &string, n, h, " " str " ", "true"); }\ +#define SHOW_GUI_BOOL(n, h, str, v) do { if (v) { show_gui_line(target, &string, n, h, " " str " ", "true"); }\ else { show_gui_line(target, &string, n, h, " " str " ", "false"); } } while(false) #define SHOW_GUI_SCROLL(n, h, str, v) show_gui_scroll(target, &string, n, h, " " str, v) @@ -5566,9 +5566,9 @@ draw_file_bar(Render_Target *target, View *view, Editing_File *file, i32_Rect re else{ char line_number_space[30]; String line_number = make_fixed_width_string(line_number_space); - append(&line_number, " L#"); + append_ss(&line_number, make_lit_string(" L#")); append_int_to_str(&line_number, view->edit_pos->cursor.line); - append(&line_number, " C#"); + append_ss(&line_number, make_lit_string(" C#")); append_int_to_str(&line_number, view->edit_pos->cursor.character); intbar_draw_string(target, &bar, line_number, base_color); @@ -5870,7 +5870,7 @@ do_render_file_view(System_Functions *system, View *view, GUI_Scroll_Vars *scrol String m = gui_read_string(&ptr); if (folder){ - append(&f, system->slash); + append_s_char(&f, system->slash); } draw_fat_option_block(gui_target, target, view, font_id, gui_session.rect, b->id, f, m); diff --git a/4ed_font_set.cpp b/4ed_font_set.cpp index 8ecbcd17..386c906c 100644 --- a/4ed_font_set.cpp +++ b/4ed_font_set.cpp @@ -217,7 +217,7 @@ font_set_find_pos(Font_Set *set, String name, u32 *position){ if (i == set->max) i = 0; entry = set->entries + i; if (entry->hash == hash){ - if (match(name, entry->name)){ + if (match_ss(name, entry->name)){ result = 1; *position = i; break; diff --git a/4ed_metagen.cpp b/4ed_metagen.cpp index f16f6d2d..2496e315 100644 --- a/4ed_metagen.cpp +++ b/4ed_metagen.cpp @@ -365,6 +365,7 @@ struct Function_Set{ String *args; String *body; String *marker; + String *cpp_name; String *doc_string; @@ -441,7 +442,7 @@ file_dump(char *filename){ String get_first_line(String source){ String line = {0}; - int pos = find(source, 0, '\n'); + int pos = find_s_char(source, 0, '\n'); line = substr(source, 0, pos); @@ -459,7 +460,7 @@ get_next_line(String source, String line){ start = pos + 1; if (start < source.size){ - pos = find(source, start, '\n'); + pos = find_s_char(source, start, '\n'); next = substr(source, start, pos - start); } } @@ -824,7 +825,7 @@ parse_struct_next_member(Partition *part, (token->flags & CPP_TFLAG_IS_KEYWORD)){ String lexeme = make_string(data + token->start, token->size); - if (match(lexeme, make_lit_string("struct"))){ + if (match_ss(lexeme, make_lit_string("struct"))){ Struct_Member *member = push_struct(part, Struct_Member); if (parse_struct(part, true, data, tokens, count, &token, member)){ result = member; @@ -834,7 +835,7 @@ parse_struct_next_member(Partition *part, assert(!"unhandled error"); } } - else if (match(lexeme, make_lit_string("union"))){ + else if (match_ss(lexeme, make_lit_string("union"))){ Struct_Member *member = push_struct(part, Struct_Member); if (parse_struct(part, false, data, tokens, count, &token, member)){ result = member; @@ -960,8 +961,8 @@ print_struct_html(FILE *file, Struct_Member *member){ String type = member->type; String type_postfix = member->type_postfix; - if (match(type, make_lit_string("struct")) || - match(type, make_lit_string("union"))){ + if (match_ss(type, make_lit_string("struct")) || + match_ss(type, make_lit_string("union"))){ fprintf(file, "%.*s %.*s {
    \n" "

    \n", @@ -1086,8 +1087,8 @@ print_struct_docs(FILE *file, Partition *part, Struct_Member *member){ member_iter != 0; member_iter = member_iter->next_sibling){ String type = member_iter->type; - if (match(type, make_lit_string("struct")) || - match(type, make_lit_string("union"))){ + if (match_ss(type, make_lit_string("struct")) || + match_ss(type, make_lit_string("union"))){ print_struct_docs(file, part, member_iter); } else{ @@ -1248,17 +1249,19 @@ allocate_app_api(int count){ static Function_Set allocate_function_set(int count){ Function_Set function_set = {0}; - int memory_size = (sizeof(String)*6 + + int memory_size = (sizeof(String)*7 + sizeof(int)*2 + sizeof(Argument_Breakdown) + sizeof(Documentation))*count; - function_set.name = (String*)malloc(memory_size); - function_set.ret = function_set.name + count; - function_set.args = function_set.ret + count; - function_set.body = function_set.args + count; - function_set.marker = function_set.body + count; - function_set.doc_string = function_set.marker + count; + String *str_ptr = (String*)malloc(memory_size); + function_set.name = str_ptr; str_ptr += count; + function_set.ret = str_ptr; str_ptr += count; + function_set.args = str_ptr; str_ptr += count; + function_set.body = str_ptr; str_ptr += count; + function_set.marker = str_ptr; str_ptr += count; + function_set.cpp_name = str_ptr; str_ptr += count; + function_set.doc_string = str_ptr; str_ptr += count; function_set.is_macro = (int*)(function_set.doc_string + count); function_set.valid = function_set.is_macro + count; @@ -1390,9 +1393,48 @@ do_function_get_doc(int *index, Cpp_Token **token_ptr, int count, return(result); } +static String +get_lexeme(Cpp_Token token, char *code){ + String str = make_string(code + token.start, token.size); + return(str); +} + +static int +do_parse_cpp_name(int *i_ptr, Cpp_Token **token_ptr, int count, char *data, String *name){ + int result = false; + + int i = *i_ptr; + Cpp_Token *token = *token_ptr; + + int i_start = i; + Cpp_Token *token_start = token; + + ++i, ++token; + if (i < count && token->type == CPP_TOKEN_PARENTHESE_OPEN){ + ++i, ++token; + if (i < count && token->type == CPP_TOKEN_IDENTIFIER){ + ++i, ++token; + if (i < count && token->type == CPP_TOKEN_PARENTHESE_CLOSE){ + *name = get_lexeme(*(token-1), data); + result = true; + } + } + } + + if (!result){ + i = i_start; + token = token_start; + } + + *i_ptr = i; + *token_ptr = token; + + return(result); +} + static int do_function_parse(int *index, Cpp_Token **token_ptr, int count, Cpp_Token *ret_start_token, - char *data, Function_Set function_set, int sig_count){ + char *data, Function_Set function_set, int sig_count, String cpp_name){ int result = false; int i = *index; @@ -1422,6 +1464,8 @@ do_function_parse(int *index, Cpp_Token **token_ptr, int count, Cpp_Token *ret_s Argument_Breakdown *breakdown = &function_set.breakdown[sig_count]; *breakdown = do_parameter_parse(data, args_start_token, token); + + function_set.cpp_name[sig_count] = cpp_name; } *index = i; @@ -1432,7 +1476,7 @@ do_function_parse(int *index, Cpp_Token **token_ptr, int count, Cpp_Token *ret_s static int do_full_function_parse(int *index, Cpp_Token **token_ptr, int count, char *data, - Function_Set function_set, int sig_count){ + Function_Set function_set, int sig_count, String cpp_name){ int result = false; int i = *index; @@ -1458,7 +1502,7 @@ do_full_function_parse(int *index, Cpp_Token **token_ptr, int count, char *data, Cpp_Token *ret_start_token = token; if (do_function_parse_check(&i, &token, count)){ if (do_function_parse(&i, &token, count, ret_start_token, - data, function_set, sig_count)){ + data, function_set, sig_count, cpp_name)){ result = true; } } @@ -1580,22 +1624,26 @@ struct String_Function_Marker{ int parse_function; int is_inline; int parse_doc; + int cpp_name; }; static String_Function_Marker do_string_function_marker_check(String lexeme){ String_Function_Marker result = {0}; - if (match(lexeme, "FSTRING_INLINE")){ + if (match_ss(lexeme, make_lit_string("FSTRING_INLINE"))){ result.is_inline = true; result.parse_function = true; } - else if (match(lexeme, "FSTRING_LINK")){ + else if (match_ss(lexeme, make_lit_string("FSTRING_LINK"))){ result.parse_function = true; } - else if (match(lexeme, "DOC_EXPORT")){ + else if (match_ss(lexeme, make_lit_string("DOC_EXPORT"))){ result.parse_doc = true; } + else if (match_ss(lexeme, make_lit_string("CPP_NAME"))){ + result.cpp_name = true; + } return(result); } @@ -1792,6 +1840,9 @@ generate_custom_headers(){ Cpp_Token *tokens = token_stack->tokens; Cpp_Token *token = tokens; + String cpp_name = {0}; + int has_cpp_name = 0; + for (int i = 0; i < count; ++i, ++token){ if (token->type == CPP_TOKEN_IDENTIFIER && !(token->flags & CPP_TFLAG_PP_BODY)){ @@ -1800,9 +1851,15 @@ generate_custom_headers(){ String_Function_Marker marker = do_string_function_marker_check(lexeme); - if (marker.parse_function){ + if (marker.cpp_name){ + if (do_parse_cpp_name(&i, &token, count, data, &cpp_name)){ + has_cpp_name = 1; + } + } + else if (marker.parse_function){ if (do_full_function_parse(&i, &token, count, data, - string_function_set, string_sig_count)){ + string_function_set, string_sig_count, + cpp_name)){ ++string_sig_count; } } @@ -1813,6 +1870,13 @@ generate_custom_headers(){ ++string_sig_count; } } + + if (has_cpp_name){ + has_cpp_name = 0; + } + else{ + cpp_name = string_zero(); + } } } } @@ -1846,7 +1910,7 @@ generate_custom_headers(){ if (token->type == CPP_TOKEN_IDENTIFIER && !(token->flags & CPP_TFLAG_PP_BODY)){ String lexeme = make_string(data + token->start, token->size); - if (match(lexeme, "API_EXPORT")){ + if (match_ss(lexeme, make_lit_string("API_EXPORT"))){ if (do_function_parse_check(&i, &token, count)){ ++line_count; } @@ -1874,8 +1938,9 @@ generate_custom_headers(){ if (token->type == CPP_TOKEN_IDENTIFIER && !(token->flags & CPP_TFLAG_PP_BODY)){ String lexeme = make_string(data + token->start, token->size); - if (match(lexeme, "API_EXPORT")){ - do_full_function_parse(&i, &token, count, data, function_set, sig_count); + if (match_ss(lexeme, make_lit_string("API_EXPORT"))){ + do_full_function_parse(&i, &token, count, data, function_set, + sig_count, string_zero()); if (!function_set.valid[sig_count]){ zero_index(function_set, sig_count); // TODO(allen): get warning file name and line numbers @@ -1896,16 +1961,16 @@ generate_custom_headers(){ macro->memory_size = name_string.size+4; macro->str = (char*)malloc(macro->memory_size); - copy(macro, name_string); + copy_ss(macro, name_string); to_upper(macro); - append(macro, make_lit_string("_SIG")); + append_ss(macro, make_lit_string("_SIG")); public_name->size = 0; public_name->memory_size = name_string.size; public_name->str = (char*)malloc(public_name->memory_size); - copy(public_name, name_string); + copy_ss(public_name, name_string); to_lower(public_name); } @@ -2197,7 +2262,7 @@ generate_custom_headers(){ if (token->type == CPP_TOKEN_IDENTIFIER && !(token->flags & CPP_TFLAG_PP_BODY)){ String lexeme = make_string(code->str + token->start, token->size); - if (match(lexeme, "FSTRING_BEGIN")){ + if (match_ss(lexeme, make_lit_string("FSTRING_BEGIN"))){ start = token->start + token->size; break; } @@ -2216,13 +2281,17 @@ generate_custom_headers(){ do_whitespace_print = true; } - String lexeme = make_string(code->str + token->start, token->size); + String lexeme = get_lexeme(*token, code->str); int do_print = true; - if (match(lexeme, "FSTRING_DECLS")){ - fprintf(file, "#ifndef FCODER_STRING_H\n#define FCODER_STRING_H\n\n"); + if (match_ss(lexeme, make_lit_string("FSTRING_DECLS"))){ + fprintf(file, "#if !defined(FCODER_STRING_H)\n#define FCODER_STRING_H\n\n"); do_print = false; + +#define RETURN_PADDING 16 +#define SIG_PADDING 30 + for (int j = 0; j < string_sig_count; ++j){ char line_space[2048]; String line = make_fixed_width_string(line_space); @@ -2233,12 +2302,12 @@ generate_custom_headers(){ String name = string_function_set.name[j]; String args = string_function_set.args[j]; - append(&line, marker); - append_padding(&line, ' ', 16); - append(&line, ret); - append_padding(&line, ' ', 30); - append(&line, name); - append(&line, args); + append_ss(&line, marker); + append_padding(&line, ' ', RETURN_PADDING); + append_ss(&line, ret); + append_padding(&line, ' ', SIG_PADDING); + append_ss(&line, name); + append_ss(&line, args); terminate_with_null(&line); fprintf(file, "%s;\n", line.str); @@ -2248,32 +2317,117 @@ generate_custom_headers(){ String args = string_function_set.args[j]; String body = string_function_set.body[j]; - append(&line, "#ifndef "); + append_ss(&line, make_lit_string("#ifndef ")); append_padding(&line, ' ', 10); - append(&line, name); + append_ss(&line, name); terminate_with_null(&line); fprintf(file, "%s\n", line.str); line.size = 0; - append(&line, "# define "); + append_ss(&line, make_lit_string("# define ")); append_padding(&line, ' ', 10); - append(&line, name); - append(&line, args); - append(&line, ' '); - append(&line, body); + append_ss(&line, name); + append_ss(&line, args); + append_s_char(&line, ' '); + append_ss(&line, body); terminate_with_null(&line); fprintf(file, "%s\n", line.str); line.size = 0; - append(&line, "#endif"); + append_ss(&line, make_lit_string("#endif")); terminate_with_null(&line); fprintf(file, "%s\n", line.str); } } + { + fprintf(file, "\n#if !defined(FSTRING_C)\n\n" + "// NOTE(allen): This section is here to enable nicer names\n" + "// for C++ users who can have overloaded functions. None of\n" + "// these functions add new features.\n"); + + for (int j = 0; j < string_sig_count; ++j){ + char line_space[2048]; + String line = make_fixed_width_string(line_space); + + if (!string_function_set.is_macro[j]){ + String cpp_name = string_function_set.cpp_name[j]; + if (cpp_name.str != 0){ + String ret = string_function_set.ret[j]; + String args = string_function_set.args[j]; + + append_ss(&line, make_lit_string("FSTRING_INLINE")); + append_padding(&line, ' ', RETURN_PADDING); + append_ss(&line, ret); + append_padding(&line, ' ', SIG_PADDING); + append_ss(&line, cpp_name); + append_ss(&line, args); + terminate_with_null(&line); + + fprintf(file, "%s;\n", line.str); + } + } + } + + fprintf(file, "\n#endif\n"); + } + fprintf(file, "\n#endif\n"); + + { + fprintf(file, "\n#if !defined(FSTRING_C) && !defined(FSTRING_GUARD)\n\n"); + + for (int j = 0; j < string_sig_count; ++j){ + char line_space[2048]; + String line = make_fixed_width_string(line_space); + + if (!string_function_set.is_macro[j]){ + String cpp_name = string_function_set.cpp_name[j]; + if (cpp_name.str != 0){ + String name = string_function_set.name[j]; + String ret = string_function_set.ret[j]; + String args = string_function_set.args[j]; + Argument_Breakdown breakdown = string_function_set.breakdown[j]; + + append_ss(&line, make_lit_string("FSTRING_INLINE")); + append_s_char(&line, ' '); + append_ss(&line, ret); + append_s_char(&line, '\n'); + append_ss(&line, cpp_name); + append_ss(&line, args); + if (match_ss(ret, make_lit_string("void"))){ + append_ss(&line, make_lit_string("{ (")); + } + else{ + append_ss(&line, make_lit_string("{ return(")); + } + append_ss(&line, name); + append_s_char(&line, '('); + + if (breakdown.count > 0){ + for (int32_t i = 0; i < breakdown.count; ++i){ + if (i != 0){ + append_s_char(&line, ','); + } + append_ss(&line, breakdown.param_name[i]); + } + } + else{ + append_ss(&line, make_lit_string("void")); + } + + append_ss(&line, make_lit_string("));}")); + terminate_with_null(&line); + + fprintf(file, "%s\n", line.str); + } + } + } + + fprintf(file, "\n#endif\n"); + } } - else if (match(lexeme, "DOC_EXPORT")){ + else if (match_ss(lexeme, make_lit_string("DOC_EXPORT"))){ ++i, ++token; if (i < count && token->type == CPP_TOKEN_COMMENT){ ++i, ++token; @@ -2290,9 +2444,9 @@ generate_custom_headers(){ } } } - else if (match(lexeme, "FSTRING_INLINE")){ + else if (match_ss(lexeme, make_lit_string("FSTRING_INLINE"))){ if (!(token->flags & CPP_TFLAG_PP_BODY)){ - fprintf(file, "#ifndef FSTRING_GUARD\n"); + fprintf(file, "#if !defined(FSTRING_GUARD)\n"); print_function_body_code(file, &i, &token, count, code, start); @@ -2300,9 +2454,9 @@ generate_custom_headers(){ do_print = false; } } - else if (match(lexeme, "FSTRING_LINK")){ + else if (match_ss(lexeme, make_lit_string("FSTRING_LINK"))){ if (!(token->flags & CPP_TFLAG_PP_BODY)){ - fprintf(file, "#ifdef FSTRING_IMPLEMENTATION\n"); + fprintf(file, "#if defined(FSTRING_IMPLEMENTATION)\n"); print_function_body_code(file, &i, &token, count, code, start); @@ -2310,6 +2464,30 @@ generate_custom_headers(){ do_print = false; } } + else if (match_ss(lexeme, make_lit_string("CPP_NAME"))){ + + Cpp_Token *token_start = token; + int i_start = i; + int has_cpp_name = false; + + ++i, ++token; + if (token->type == CPP_TOKEN_PARENTHESE_OPEN){ + ++i, ++token; + if (token->type == CPP_TOKEN_IDENTIFIER){ + ++i, ++token; + if (token->type == CPP_TOKEN_PARENTHESE_CLOSE){ + has_cpp_name = true; + } + } + } + + if (!has_cpp_name){ + i = i_start; + token = token_start; + } + + do_print = false; + } else if (token->type == CPP_TOKEN_COMMENT){ lexeme = make_string(code->str + token->start, token->size); if (check_and_fix_docs(&lexeme)){ @@ -2909,7 +3087,7 @@ int main(int argc, char **argv){ memset(&global_settings, 0, sizeof(global_settings)); global_settings.generate_docs = true; - global_settings.generate_string = false; + global_settings.generate_string = true; filename = generate_keycode_enum(); filename = generate_style(); diff --git a/4ed_style.cpp b/4ed_style.cpp index d0413575..d46ef063 100644 --- a/4ed_style.cpp +++ b/4ed_style.cpp @@ -28,8 +28,8 @@ style_copy(Style *dst, Style *src){ internal void style_set_name(Style *style, String name){ i32 count = ArrayCount(style->name_); - style->name = make_string(style->name_, 0, count - 1); - copy(&style->name, name); + style->name = make_string_cap(style->name_, 0, count - 1); + copy_ss(&style->name, name); terminate_with_null(&style->name); } diff --git a/build.bat b/build.bat index 92aebd90..72535094 100644 --- a/build.bat +++ b/build.bat @@ -1,6 +1,23 @@ @echo off REM "build_exp.bat" /O2 -"build_all.bat" /DFRED_SUPER /DFRED_INTERNAL /Zi +REM "build_all.bat" /DFRED_SUPER /DFRED_INTERNAL /Zi REM "build_all.bat" /DFRED_INTERNAL /Zi REM "build_all.bat" /DFRED_SUPER /O2 /Zi + +call "ctime" -begin 4ed_data.ctm + +SET OPTS=/W4 /wd4310 /wd4100 /wd4201 /wd4505 /wd4996 /wd4127 /wd4510 /wd4512 /wd4610 /wd4390 /WX +SET OPTS=/GR- /EHa- /nologo /FC + +SET FirstError=0 + +pushd ..\build +cl %OPTS% ..\code\build.c /Febuild /DDEV_BUILD +if %ERRORLEVEL% neq 0 (set FirstError=1) +popd + +..\build\build +if %ERRORLEVEL% neq 0 (set FirstError=1) + +call "ctime" -end 4ed_data.ctm %FirstError% \ No newline at end of file diff --git a/build.c b/build.c new file mode 100644 index 00000000..628bdc51 --- /dev/null +++ b/build.c @@ -0,0 +1,234 @@ +/* + +4coder development build rule. + +*/ + +// TOP + +#include +#include +#include + +// +// reusable +// + +#define CL_OPTS \ +"/W4 /wd4310 /wd4100 /wd4201 /wd4505 /wd4996 /wd4127 /wd4510 /wd4512 /wd4610 /wd4390 /WX "\ +"/GR- /EHa- /nologo /FC" + +#if defined(_MSC_VER) + +#define IS_CL +#define snprintf _snprintf + +#if defined(_WIN32) +# define IS_WINDOWS +# pragma comment(lib, "Kernel32.lib") +#endif + +#else +#error This compiler is not supported yet +#endif + +static char cmd[1024]; +static int error_state = 0; + +#define systemf(...) do{\ + int32_t n = snprintf(cmd, sizeof(cmd), __VA_ARGS__);\ + assert(n < sizeof(cmd));\ + if (system(cmd) != 0) error_state = 1;\ +}while(0) + + +#if defined(IS_WINDOWS) + +#define DWORD uint32_t +#define LPTSTR char* + +DWORD GetCurrentDirectoryA( +_In_ DWORD nBufferLength, +_Out_ LPTSTR lpBuffer +); + +static int32_t +get_current_directory(char *buffer, int32_t max){ + int32_t result = GetCurrentDirectoryA(max, buffer); + return(result); +} + +static void +execute(char *dir, char *str){ + if (dir){ + systemf("pushd %s & call \"%s\"", dir, str); + } + else{ + systemf("call \"%s\"", str); + } +} + +#else +#error This OS is not supported yet +#endif + +// +// 4coder specific +// + +#define CL_INCLUDES \ +"/I..\\foreign /I..\\foreign\\freetype2" + +#define CL_LIBS \ +"user32.lib winmm.lib gdi32.lib opengl32.lib ..\\foreign\\freetype.lib" + +#define CL_ICON \ +"..\\foreign\\freetype.lib" + +static void +swap_ptr(void **A, void **B){ + void *a = *A; + void *b = *B; + *A = b; + *B = a; +} + +static void +win32_slash_fix(char *path){ + for (int32_t i = 0; path[i]; ++i){ + if (path[i] == '/') path[i] = '\\'; + } +} + +enum{ + OPTS = 0x1, + INCLUDES = 0x2, + LIBS = 0x4, + ICON = 0x8, + SHARED_CODE = 0x10, + DEBUG_INFO = 0x20 +}; + + +static void +build_cl(uint32_t flags, + char *code_path, char *code_file, + char *out_path, char *out_file, + char *exports){ + win32_slash_fix(out_path); + + char link_options[1024]; + if (flags & SHARED_CODE){ + assert(exports); + snprintf(link_options, sizeof(link_options), "/OPT:REF %s", exports); + } + else{ + snprintf(link_options, sizeof(link_options), "/NODEFAULTLIB:library"); + } + + char build_optionsA[4096]; + char build_optionsB[4096]; + char *build_options = build_optionsA; + char *build_options_prev = build_optionsB; + int32_t build_max = sizeof(build_optionsA); + + build_optionsA[0] = 0; + build_optionsB[0] = 0; + + if (flags & OPTS){ + snprintf(build_options, build_max, "%s "CL_OPTS, build_options_prev); + swap_ptr(&build_options, &build_options_prev); + } + + if (flags & INCLUDES){ + snprintf(build_options, build_max, "%s "CL_INCLUDES, build_options_prev); + swap_ptr(&build_options, &build_options_prev); + } + + if (flags & LIBS){ + snprintf(build_options, build_max, "%s "CL_LIBS, build_options_prev); + swap_ptr(&build_options, &build_options_prev); + } + + if (flags & ICON){ + snprintf(build_options, build_max, "%s "CL_ICON, build_options_prev); + swap_ptr(&build_options, &build_options_prev); + } + + if (flags & DEBUG_INFO){ + snprintf(build_options, build_max, "%s /Zi", build_options_prev); + swap_ptr(&build_options, &build_options_prev); + } + + if (flags & SHARED_CODE){ + snprintf(build_options, build_max, "%s /LD", build_options_prev); + swap_ptr(&build_options, &build_options_prev); + } + + swap_ptr(&build_options, &build_options_prev); + + systemf("pushd %s & cl %s %s\\%s /Fe%s /link /DEBUG /INCREMENTAL:NO %s", + out_path, build_options, code_path, code_file, out_file, link_options); +} + +static void +build(uint32_t flags, + char *code_path, char *code_file, + char *out_path, char *out_file, + char *exports){ +#if defined(IS_CL) + build_cl(flags, code_path, code_file, out_path, out_file, exports); +#else +#error The build rule for this compiler is not ready +#endif +} + +static void +buildsuper(char *code_path , char *filename){ +#if defined(IS_CL) + + win32_slash_fix(filename); + + systemf("call \"%s\\buildsuper.bat\" %s", + code_path, filename); + +#else +#error The build rule for this compiler is not ready +#endif +} + +#if defined(DEV_BUILD) + +int main(int argc, char **argv){ + char cdir[256]; + { + int32_t n = get_current_directory(cdir, sizeof(cdir)); + assert(n < sizeof(cdir)); + } + + build(OPTS | DEBUG_INFO, cdir, "4ed_metagen.cpp", + "../meta", "metagen", 0); + + execute(cdir, "../meta/metagen"); + + //buildsuper(cdir, "../code/4coder_default_bindings.cpp"); + buildsuper(cdir, "../code/internal_4coder_tests.cpp"); + //buildsuper(cdir, "../code/power/4coder_casey.cpp"); + //buildsuper(cdir, "../4vim/4coder_chronal.cpp"); + + build(OPTS | INCLUDES | SHARED_CODE | DEBUG_INFO, cdir, "4ed_app_target.cpp", + "../build", "4ed_app", "/EXPORT:app_get_functions"); + + build(OPTS | INCLUDES | LIBS | ICON | DEBUG_INFO, cdir, "win32_4ed.cpp", + "../build", "4ed", 0); + + return(error_state); +} + +#elif defined(PACKAGE) + + + +#endif + +// BOTTOM \ No newline at end of file diff --git a/build_all.bat b/build_all.bat index be47973f..59203d7b 100644 --- a/build_all.bat +++ b/build_all.bat @@ -32,7 +32,7 @@ REM call "%CODE_DIR%\buildsuper.bat" ..\4vim\4coder_chronal.cpp if %ERRORLEVEL% neq 0 (set FirstError=1) set EXPORTS=/EXPORT:app_get_functions -REM cl %OPTS% %INCLUDES% %DEFINES% %CODE_DIR%\4ed_app_target.cpp %* /Fe4ed_app /LD /link /DEBUG /INCREMENTAL:NO /OPT:REF %EXPORTS% +cl %OPTS% %INCLUDES% %DEFINES% %CODE_DIR%\4ed_app_target.cpp %* /Fe4ed_app /LD /link /DEBUG /INCREMENTAL:NO /OPT:REF %EXPORTS% if %ERRORLEVEL% neq 0 (set FirstError=1) cl %OPTS% %INCLUDES% %DEFINES% %CODE_DIR%\win32_4ed.cpp %LIBS% %ICON% %* /Fe4ed /link /DEBUG /NODEFAULTLIB:library diff --git a/internal_4coder_string.cpp b/internal_4coder_string.cpp index 52db6bd0..560b09c7 100644 --- a/internal_4coder_string.cpp +++ b/internal_4coder_string.cpp @@ -3,9 +3,15 @@ #define FSTRING_BEGIN #define DOC_EXPORT +#define CPP_NAME(n) + FSTRING_BEGIN // TOP +#if defined(FSTRING_C) +#define FSTRING_INLINE static +#endif + #if defined(FSTRING_IMPLEMENTATION) && defined(FSTRING_GUARD) #undef FSTRING_IMPLEMENTATION #endif @@ -22,16 +28,16 @@ FSTRING_BEGIN #ifndef FSTRING_STRUCT #define FSTRING_STRUCT -struct String{ +typedef struct String{ char *str; int32_t size; int32_t memory_size; -}; +} String; -struct Offset_String{ +typedef struct Offset_String{ int32_t offset; int32_t size; -}; +} Offset_String; #endif #ifndef fstr_bool @@ -114,14 +120,15 @@ char_is_numeric(char c) // FSTRING_INLINE String -string_zero() +string_zero(void) /* DOC(This call returns a String struct of zeroed members.) */{ String str={0}; return(str); } +CPP_NAME(make_string) FSTRING_INLINE String -make_string(void *str, int32_t size, int32_t mem_size) +make_string_cap(void *str, int32_t size, int32_t mem_size) /* DOC_PARAM(str, The str parameter provides the of memory with which the string shall operate.) DOC_PARAM(size, The size parameter expresses the initial size of the string. @@ -154,11 +161,11 @@ DOC(This call returns the String created from the parameters.) DOC_EXPORT /* DOC(This macro takes a literal string in quotes and uses it to create a String with the correct size and memory size. Strings created this way should usually not be mutated.) */ -#define make_lit_string(s) (make_string((char*)(s), sizeof(s)-1, sizeof(s))) +#define make_lit_string(s) (make_string_cap((char*)(s), sizeof(s)-1, sizeof(s))) DOC_EXPORT /* DOC(This macro takes a local char array with a fixed width and uses it to create an empty String with the correct size and memory size to operate on the array.) */ -#define make_fixed_width_string(s) (make_string((char*)(s), 0, sizeof(s))) +#define make_fixed_width_string(s) (make_string_cap((char*)(s), 0, sizeof(s))) DOC_EXPORT /* DOC(This macro is a helper for any calls that take a char*,int pair to specify a string. This macro expands to both of those parameters from one String struct.) */ @@ -183,12 +190,9 @@ treating that as the size and memory size of the string.) */{ return result; } -// TODO(allen): I don't love the substr rule, I chose -// substr(String, start) and substr(String, start, size) -// but I wish I had substr(String, start) and substr(String, start, end) - +CPP_NAME(substr) FSTRING_INLINE String -substr(String str, int32_t start) +substr_tail(String str, int32_t start) /* DOC(This call creates a substring of str that starts with an offset from str's base. The new string uses the same underlying memory so both strings will see changes. Usually strings created this way should only go through immutable calls.) */{ @@ -263,8 +267,9 @@ the portion of str's memory that is not used.) */{ // String Comparison // +CPP_NAME(match) FSTRING_LINK fstr_bool -match(char *a, char *b)/* DOC(This call returns non-zero if a and b are equivalent.) */{ +match_cc(char *a, char *b)/* DOC(This call returns non-zero if a and b are equivalent.) */{ for (int32_t i = 0;; ++i){ if (a[i] != b[i]){ return 0; @@ -275,8 +280,9 @@ match(char *a, char *b)/* DOC(This call returns non-zero if a and b are equivale } } +CPP_NAME(match) FSTRING_LINK fstr_bool -match(String a, char *b)/* DOC(This call returns non-zero if a and b are equivalent.) */{ +match_sc(String a, char *b)/* DOC(This call returns non-zero if a and b are equivalent.) */{ int32_t i = 0; for (; i < a.size; ++i){ if (a.str[i] != b[i]){ @@ -289,13 +295,15 @@ match(String a, char *b)/* DOC(This call returns non-zero if a and b are equival return 1; } +CPP_NAME(match) FSTRING_INLINE fstr_bool -match(char *a, String b)/* DOC(This call returns non-zero if a and b are equivalent.) */{ - return(match(b,a)); +match_cs(char *a, String b)/* DOC(This call returns non-zero if a and b are equivalent.) */{ + return(match_sc(b,a)); } +CPP_NAME(match) FSTRING_LINK fstr_bool -match(String a, String b)/* DOC(This call returns non-zero if a and b are equivalent.) */{ +match_ss(String a, String b)/* DOC(This call returns non-zero if a and b are equivalent.) */{ if (a.size != b.size){ return 0; } @@ -307,8 +315,9 @@ match(String a, String b)/* DOC(This call returns non-zero if a and b are equiva return 1; } +CPP_NAME(match_part) FSTRING_LINK fstr_bool -match_part(char *a, char *b, int32_t *len)/* +match_part_ccl(char *a, char *b, int32_t *len)/* DOC_PARAM(len, If this call returns non-zero this parameter is used to output the length of b.) DOC(This call is similar to a match call, except that it is permitted for a to be longer than b. In other words this call returns non-zero if b is a prefix of a.) */{ @@ -322,9 +331,9 @@ In other words this call returns non-zero if b is a prefix of a.) */{ return 1; } - +CPP_NAME(match_part) FSTRING_LINK fstr_bool -match_part(String a, char *b, int32_t *len)/* +match_part_scl(String a, char *b, int32_t *len)/* DOC_PARAM(len, If this call returns non-zero this parameter is used to output the length of b.) DOC(This call is similar to a match call, except that it is permitted for a to be longer than b. In other words this call returns non-zero if b is a prefix of a.) */{ @@ -338,25 +347,28 @@ In other words this call returns non-zero if b is a prefix of a.) */{ return 1; } +CPP_NAME(match_part) FSTRING_INLINE fstr_bool -match_part(char *a, char *b)/* +match_part_cc(char *a, char *b)/* DOC_PARAM(len, If this call returns non-zero this parameter is used to output the length of b.) DOC(This call is similar to a match call, except that it is permitted for a to be longer than b. In other words this call returns non-zero if b is a prefix of a.) */{ int32_t x; - return match_part(a,b,&x); + return match_part_ccl(a,b,&x); } +CPP_NAME(match_part) FSTRING_INLINE fstr_bool -match_part(String a, char *b)/* +match_part_sc(String a, char *b)/* DOC(This call is similar to a match call, except that it is permitted for a to be longer than b. In other words this call returns non-zero if b is a prefix of a.) */{ int32_t x; - return match_part(a,b,&x); + return match_part_scl(a,b,&x); } +CPP_NAME(match_part) FSTRING_LINK fstr_bool -match_part(char *a, String b)/* +match_part_cs(char *a, String b)/* DOC(This call is similar to a match call, except that it is permitted for a to be longer than b. In other words this call returns non-zero if b is a prefix of a.) */{ for (int32_t i = 0; i != b.size; ++i){ @@ -367,8 +379,9 @@ In other words this call returns non-zero if b is a prefix of a.) */{ return 1; } +CPP_NAME(match_part) FSTRING_LINK fstr_bool -match_part(String a, String b)/* +match_part_ss(String a, String b)/* DOC(This call is similar to a match call, except that it is permitted for a to be longer than b. In other words this call returns non-zero if b is a prefix of a.) */{ if (a.size < b.size){ @@ -382,8 +395,9 @@ In other words this call returns non-zero if b is a prefix of a.) */{ return 1; } +CPP_NAME(match_insensitive) FSTRING_LINK fstr_bool -match_insensitive(char *a, char *b)/* +match_insensitive_cc(char *a, char *b)/* DOC(This call returns non-zero if a and b are equivalent under case insensitive comparison.) */{ for (int32_t i = 0;; ++i){ if (char_to_upper(a[i]) != @@ -396,8 +410,9 @@ DOC(This call returns non-zero if a and b are equivalent under case insensitive } } +CPP_NAME(match_insensitive) FSTRING_LINK fstr_bool -match_insensitive(String a, char *b)/* +match_insensitive_sc(String a, char *b)/* DOC(This call returns non-zero if a and b are equivalent under case insensitive comparison.) */{ int32_t i = 0; for (; i < a.size; ++i){ @@ -412,14 +427,16 @@ DOC(This call returns non-zero if a and b are equivalent under case insensitive return 1; } +CPP_NAME(match_insensitive) FSTRING_INLINE fstr_bool -match_insensitive(char *a, String b)/* +match_insensitive_cs(char *a, String b)/* DOC(This call returns non-zero if a and b are equivalent under case insensitive comparison.) */{ - return match_insensitive(b,a); + return match_insensitive_sc(b,a); } +CPP_NAME(match_insensitive) FSTRING_LINK fstr_bool -match_insensitive(String a, String b)/* +match_insensitive_ss(String a, String b)/* DOC(This call returns non-zero if a and b are equivalent under case insensitive comparison.) */{ if (a.size != b.size){ return 0; @@ -433,8 +450,9 @@ DOC(This call returns non-zero if a and b are equivalent under case insensitive return 1; } +CPP_NAME(match_part_insensitive) FSTRING_LINK fstr_bool -match_part_insensitive(char *a, char *b, int32_t *len)/* +match_part_insensitive_ccl(char *a, char *b, int32_t *len)/* DOC_PARAM(len, If this call returns non-zero this parameter is used to output the length of b.) DOC(This call performs the same partial matching rule as match_part under case insensitive comparison.) DOC_SEE(match_part) */{ @@ -448,8 +466,9 @@ DOC_SEE(match_part) */{ return 1; } +CPP_NAME(match_part_insensitive) FSTRING_LINK fstr_bool -match_part_insensitive(String a, char *b, int32_t *len)/* +match_part_insensitive_scl(String a, char *b, int32_t *len)/* DOC_PARAM(len, If this call returns non-zero this parameter is used to output the length of b.) DOC(This call performs the same partial matching rule as match_part under case insensitive comparison.) DOC_SEE(match_part) */{ @@ -464,24 +483,27 @@ DOC_SEE(match_part) */{ return 1; } +CPP_NAME(match_part_insensitive) FSTRING_INLINE fstr_bool -match_part_insensitive(char *a, char *b)/* +match_part_insensitive_cc(char *a, char *b)/* DOC(This call performs the same partial matching rule as match_part under case insensitive comparison.) DOC_SEE(match_part) */{ int32_t x; - return match_part(a,b,&x); + return match_part_insensitive_ccl(a,b,&x); } +CPP_NAME(match_part_insensitive) FSTRING_INLINE fstr_bool -match_part_insensitive(String a, char *b)/* +match_part_insensitive_sc(String a, char *b)/* DOC(This call performs the same partial matching rule as match_part under case insensitive comparison.) DOC_SEE(match_part) */{ int32_t x; - return match_part(a,b,&x); + return match_part_insensitive_scl(a,b,&x); } +CPP_NAME(match_part_insensitive) FSTRING_LINK fstr_bool -match_part_insensitive(char *a, String b)/* +match_part_insensitive_cs(char *a, String b)/* DOC(This call performs the same partial matching rule as match_part under case insensitive comparison.) DOC_SEE(match_part) */{ for (int32_t i = 0; i != b.size; ++i){ @@ -492,8 +514,9 @@ DOC_SEE(match_part) */{ return 1; } +CPP_NAME(match_part_insensitive) FSTRING_LINK fstr_bool -match_part_insensitive(String a, String b)/* +match_part_insensitive_ss(String a, String b)/* DOC(This call performs the same partial matching rule as match_part under case insensitive comparison.) DOC_SEE(match_part) */{ if (a.size < b.size){ @@ -507,8 +530,9 @@ DOC_SEE(match_part) */{ return 1; } +CPP_NAME(compare) FSTRING_LINK int32_t -compare(char *a, char *b)/* +compare_cc(char *a, char *b)/* DOC(This call returns zero if a and b are equivalent, it returns negative if a sorts before b alphabetically, and positive if a sorts after b alphabetically.) */{ @@ -519,8 +543,9 @@ and positive if a sorts after b alphabetically.) */{ return (a[i] > b[i]) - (a[i] < b[i]); } +CPP_NAME(compare) FSTRING_LINK int32_t -compare(String a, char *b)/* +compare_sc(String a, char *b)/* DOC(This call returns zero if a and b are equivalent, it returns negative if a sorts before b alphabetically, and positive if a sorts after b alphabetically.) */{ @@ -541,16 +566,18 @@ and positive if a sorts after b alphabetically.) */{ } } +CPP_NAME(compare) FSTRING_INLINE int32_t -compare(char *a, String b)/* +compare_cs(char *a, String b)/* DOC(This call returns zero if a and b are equivalent, it returns negative if a sorts before b alphabetically, and positive if a sorts after b alphabetically.) */{ - return -compare(b,a); + return -compare_sc(b,a); } +CPP_NAME(compare) FSTRING_LINK int32_t -compare(String a, String b)/* +compare_ss(String a, String b)/* DOC(This call returns zero if a and b are equivalent, it returns negative if a sorts before b alphabetically, and positive if a sorts after b alphabetically.) */{ @@ -570,8 +597,9 @@ and positive if a sorts after b alphabetically.) */{ // Finding Characters and Substrings // +CPP_NAME(find) FSTRING_LINK int32_t -find(char *str, int32_t start, char character)/* +find_c_char(char *str, int32_t start, char character)/* DOC_PARAM(str, The str parameter provides a null terminated string to search.) DOC_PARAM(start, The start parameter provides the index of the first character in str to search.) DOC_PARAM(character, The character parameter provides the character for which to search.) @@ -582,8 +610,9 @@ if the character is not found.) */{ return i; } +CPP_NAME(find) FSTRING_LINK int32_t -find(String str, int32_t start, char character)/* +find_s_char(String str, int32_t start, char character)/* DOC_PARAM(str, The str parameter provides a string to search.) DOC_PARAM(start, The start parameter provides the index of the first character in str to search.) DOC_PARAM(character, The character parameter provides the character for which to search.) @@ -594,8 +623,9 @@ if the character is not found.) */{ return i; } +CPP_NAME(find) FSTRING_LINK int32_t -find(char *str, int32_t start, char *characters)/* +find_c_chars(char *str, int32_t start, char *characters)/* DOC_PARAM(str, The str parameter provides a null terminated string to search.) DOC_PARAM(start, The start parameter provides the index of the first character in str to search.) DOC_PARAM(character, The characters parameter provides a null terminated array of characters for which to search.) @@ -613,8 +643,9 @@ or the size of the string if no such character is not found.) */{ return i; } +CPP_NAME(find) FSTRING_LINK int32_t -find(String str, int32_t start, char *characters)/* +find_s_chars(String str, int32_t start, char *characters)/* DOC_PARAM(str, The str parameter provides a string to search.) DOC_PARAM(start, The start parameter provides the index of the first character in str to search.) DOC_PARAM(character, The characters parameter provides a null terminated array of characters for which to search.) @@ -632,8 +663,9 @@ or the size of the string if no such character is not found.) */{ return i; } +CPP_NAME(find_substr) FSTRING_LINK int32_t -find_substr(char *str, int32_t start, String seek)/* +find_substr_c(char *str, int32_t start, String seek)/* DOC_PARAM(str, The str parameter provides a null terminated string to search.) DOC_PARAM(start, The start parameter provides the index of the first character in str to search.) DOC_PARAM(seek, The seek parameter provides a string to find in str.) @@ -662,8 +694,9 @@ size of str if no such substring in str is found.) */{ return i; } +CPP_NAME(find_substr) FSTRING_LINK int32_t -find_substr(String str, int32_t start, String seek)/* +find_substr_s(String str, int32_t start, String seek)/* DOC_PARAM(str, The str parameter provides a string to search.) DOC_PARAM(start, The start parameter provides the index of the first character in str to search.) DOC_PARAM(seek, The seek parameter provides a string to find in str.) @@ -693,8 +726,9 @@ size of str if no such substring in str is found.) */{ return str.size; } +CPP_NAME(rfind_substr) FSTRING_LINK int32_t -rfind_substr(String str, int32_t start, String seek)/* +rfind_substr_s(String str, int32_t start, String seek)/* DOC_PARAM(str, The str parameter provides a string to search.) DOC_PARAM(start, The start parameter provides the index of the first character in str to search.) DOC_PARAM(seek, The seek parameter provides a string to find in str.) @@ -726,8 +760,9 @@ or -1 if no such substring in str is found.) */{ return -1; } +CPP_NAME(find_substr_insensitive) FSTRING_LINK int32_t -find_substr_insensitive(char *str, int32_t start, String seek)/* +find_substr_insensitive_c(char *str, int32_t start, String seek)/* DOC_PARAM(str, The str parameter provides a null terminated string to search.) DOC_PARAM(start, The start parameter provides the index of the first character in str to search.) DOC_PARAM(seek, The seek parameter provides a string to find in str.) @@ -759,8 +794,9 @@ DOC_SEE(find_substr)*/{ return i; } +CPP_NAME(find_substr_insensitive) FSTRING_LINK int32_t -find_substr_insensitive(String str, int32_t start, String seek)/* +find_substr_insensitive_s(String str, int32_t start, String seek)/* DOC_PARAM(str, The str parameter provides a string to search.) DOC_PARAM(start, The start parameter provides the index of the first character in str to search.) DOC_PARAM(seek, The seek parameter provides a string to find in str.) @@ -794,38 +830,43 @@ DOC_SEE(find_substr)*/{ return str.size; } +CPP_NAME(has_substr) FSTRING_INLINE fstr_bool -has_substr(char *s, String seek)/* +has_substr_c(char *s, String seek)/* DOC(This call returns non-zero if the string s contains a substring equivalent to seek.) */{ - return (s[find_substr(s, 0, seek)] != 0); + return (s[find_substr_c(s, 0, seek)] != 0); } +CPP_NAME(has_substr) FSTRING_INLINE fstr_bool -has_substr(String s, String seek)/* +has_substr_s(String s, String seek)/* DOC(This call returns non-zero if the string s contains a substring equivalent to seek.) */{ - return (find_substr(s, 0, seek) < s.size); + return (find_substr_s(s, 0, seek) < s.size); } +CPP_NAME(has_substr_insensitive) FSTRING_INLINE fstr_bool -has_substr_insensitive(char *s, String seek)/* +has_substr_insensitive_c(char *s, String seek)/* DOC(This call returns non-zero if the string s contains a substring equivalent to seek under case insensitive comparison.) */{ - return (s[find_substr_insensitive(s, 0, seek)] != 0); + return (s[find_substr_insensitive_c(s, 0, seek)] != 0); } +CPP_NAME(has_substr_insensitive) FSTRING_INLINE fstr_bool -has_substr_insensitive(String s, String seek)/* +has_substr_insensitive_s(String s, String seek)/* DOC(This call returns non-zero if the string s contains a substring equivalent to seek under case insensitive comparison.) */{ - return (find_substr_insensitive(s, 0, seek) < s.size); + return (find_substr_insensitive_s(s, 0, seek) < s.size); } // // String Copies and Appends // +CPP_NAME(copy_fast_unsafe) FSTRING_LINK int32_t -copy_fast_unsafe(char *dest, char *src)/* +copy_fast_unsafe_cc(char *dest, char *src)/* DOC(This call performs a copy from the src buffer to the dest buffer. The copy does not stop until a null terminator is found in src. There is no safety against overrun so dest must be large enough to contain src. @@ -840,8 +881,9 @@ of bytes coppied to dest.) */{ return (int32_t)(dest - start); } +CPP_NAME(copy_fast_unsafe) FSTRING_LINK int32_t -copy_fast_unsafe(char *dest, String src)/* +copy_fast_unsafe_cs(char *dest, String src)/* DOC(This call performs a copy from the src string to the dest buffer. The copy does not stop until src.size characters are coppied. There is no safety against overrun so dest must be large enough to contain src. @@ -855,8 +897,9 @@ of bytes coppied to dest.) */{ return(src.size); } +CPP_NAME(copy_checked) FSTRING_LINK fstr_bool -copy_checked(String *dest, String src)/* +copy_checked_ss(String *dest, String src)/* DOC(This call performs a copy from the src string to the dest string. The memory_size of dest is checked before any coppying is done. This call returns non-zero on a successful copy.) */{ @@ -873,8 +916,9 @@ This call returns non-zero on a successful copy.) */{ return 1; } +CPP_NAME(copy_partial) FSTRING_LINK fstr_bool -copy_partial(String *dest, char *src)/* +copy_partial_sc(String *dest, char *src)/* DOC(This call performs a copy from the src buffer to the dest string. The memory_size of dest is checked if the entire copy cannot be performed, as many bytes as possible are coppied to dest. This call returns non-zero @@ -893,17 +937,18 @@ if the entire string is coppied to dest.) */{ return 1; } +CPP_NAME(copy_partial) FSTRING_LINK fstr_bool -copy_partial(String *dest, String src)/* +copy_partial_ss(String *dest, String src)/* DOC(This call performs a copy from the src string to the dest string. The memory_size of dest is checked if the entire copy cannot be performed, as many bytes as possible are coppied to dest. This call returns non-zero if the entire string is coppied to dest.) */{ char *dest_str = dest->str; int32_t memory_size = dest->memory_size; - fstr_bool result = false; + fstr_bool result = 0; if (memory_size >= src.size){ - result = true; + result = 1; memory_size = src.size; } for (int32_t i = 0; i < memory_size; ++i){ @@ -913,62 +958,69 @@ if the entire string is coppied to dest.) */{ return result; } +CPP_NAME(copy) FSTRING_INLINE int32_t -copy(char *dest, char *src)/* +copy_cc(char *dest, char *src)/* DOC(This call performs a copy from src to dest equivalent to copy_fast_unsafe.) DOC_SEE(copy_fast_unsafe) */{ - return copy_fast_unsafe(dest, src); + return copy_fast_unsafe_cc(dest, src); } +CPP_NAME(copy) FSTRING_INLINE void -copy(String *dest, String src)/* +copy_ss(String *dest, String src)/* DOC(This call performs a copy from src to dest equivalent to copy_checked.) DOC_SEE(copy_checked) */{ - copy_checked(dest, src); + copy_checked_ss(dest, src); } +CPP_NAME(copy) FSTRING_INLINE void -copy(String *dest, char *src)/* +copy_sc(String *dest, char *src)/* DOC(This call performs a copy from src to dest equivalent to copy_partial.) DOC_SEE(copy_partial) */{ - copy_partial(dest, src); + copy_partial_sc(dest, src); } +CPP_NAME(append_checked) FSTRING_LINK fstr_bool -append_checked(String *dest, String src)/* +append_checked_ss(String *dest, String src)/* DOC(This call checks if there is enough space in dest's underlying memory to append src onto dest. If there is src is appended and the call returns non-zero.) */{ String end; end = tailstr(*dest); - fstr_bool result = copy_checked(&end, src); + fstr_bool result = copy_checked_ss(&end, src); // NOTE(allen): This depends on end.size still being 0 if // the check failed and no coppy occurred. dest->size += end.size; return result; } +CPP_NAME(append_partial) FSTRING_LINK fstr_bool -append_partial(String *dest, char *src)/* +append_partial_sc(String *dest, char *src)/* DOC(This call attemps to append as much of src into the space in dest's underlying memory as possible. If the entire string is appended the call returns non-zero.) */{ String end = tailstr(*dest); - fstr_bool result = copy_partial(&end, src); + fstr_bool result = copy_partial_sc(&end, src); dest->size += end.size; return result; } +CPP_NAME(append_partial) FSTRING_LINK fstr_bool -append_partial(String *dest, String src)/* +append_partial_ss(String *dest, String src)/* DOC(This call attemps to append as much of src into the space in dest's underlying memory as possible. If the entire string is appended the call returns non-zero.) */{ String end = tailstr(*dest); - fstr_bool result = copy_partial(&end, src); + fstr_bool result = copy_partial_ss(&end, src); dest->size += end.size; return result; } +CPP_NAME(append) FSTRING_LINK fstr_bool -append(String *dest, char c)/* +append_s_char(String *dest, char c)/* DOC(This call attemps to append c onto dest. If there is space left in dest's underlying memory the character is appended and the call returns non-zero.) */{ fstr_bool result = 0; @@ -979,16 +1031,18 @@ memory the character is appended and the call returns non-zero.) */{ return result; } +CPP_NAME(append) FSTRING_INLINE fstr_bool -append(String *dest, String src)/* +append_ss(String *dest, String src)/* DOC(This call is equivalent to append_partial.) DOC_SEE(append_partial) */{ - return append_partial(dest, src); + return append_partial_ss(dest, src); } +CPP_NAME(append) FSTRING_INLINE fstr_bool -append(String *dest, char *src)/* +append_sc(String *dest, char *src)/* DOC(This call is equivalent to append_partial.) DOC_SEE(append_partial) */{ - return append_partial(dest, src); + return append_partial_sc(dest, src); } FSTRING_LINK fstr_bool @@ -1015,7 +1069,7 @@ non-zero if dest does not run out of space in the underlying memory.) */{ int32_t r = 0; if (offset > 0){ for (r = 0; r < offset; ++r){ - if (append(dest, c) == 0){ + if (append_s_char(dest, c) == 0){ result = 0; break; } @@ -1191,18 +1245,18 @@ space in dest this call returns non-zero.) */{ } #ifndef FSTRING_GUARD -struct Float_To_Str_Variables{ +typedef struct Float_To_Str_Variables{ fstr_bool negative; int32_t int_part; int32_t dec_part; -}; +} Float_To_Str_Variables; -Float_To_Str_Variables +static Float_To_Str_Variables get_float_vars(float x){ Float_To_Str_Variables vars = {0}; if (x < 0){ - vars.negative = true; + vars.negative = 1; x = -x; } @@ -1230,11 +1284,11 @@ space in dest this call returns non-zero.) */{ Float_To_Str_Variables vars = get_float_vars(x); if (vars.negative){ - append(dest, '-'); + append_s_char(dest, '-'); } append_int_to_str(dest, vars.int_part); - append(dest, '.'); + append_s_char(dest, '.'); append_int_to_str(dest, vars.dec_part); return(result); @@ -1250,21 +1304,37 @@ space in dest this call returns non-zero.) */{ return(result); } -FSTRING_LINK fstr_bool -str_is_int(String str)/* -DOC(If str is a valid string representation of an integer, this call returns non-zero.) */{ - fstr_bool result = true; - for (int32_t i = 0; i < str.size; ++i){ - if (!char_is_numeric(str.str[i])){ - result = false; +CPP_NAME(str_is_int) +FSTRING_LINK int32_t +str_is_int_c(char *str)/* +DOC(If str is a valid string representation of an integer, this call returns non-zero) */{ + fstr_bool result = 1; + for (; *str; ++str){ + if (!char_is_numeric(*str)){ + result = 0; break; } } return(result); } +CPP_NAME(str_is_int) +FSTRING_LINK fstr_bool +str_is_int_s(String str)/* +DOC(If str is a valid string representation of an integer, this call returns non-zero.) */{ + fstr_bool result = 1; + for (int32_t i = 0; i < str.size; ++i){ + if (!char_is_numeric(str.str[i])){ + result = 0; + break; + } + } + return(result); +} + +CPP_NAME(str_to_int) FSTRING_LINK int32_t -str_to_int(char *str)/* +str_to_int_c(char *str)/* DOC(If str is a valid string representation of an integer, this call will return the integer represented by the string. Otherwise this call returns zero.) */{ int32_t x = 0; @@ -1281,8 +1351,9 @@ the integer represented by the string. Otherwise this call returns zero.) */{ return(x); } +CPP_NAME(str_to_int) FSTRING_LINK int32_t -str_to_int(String str)/* +str_to_int_s(String str)/* DOC(If str represents a valid string representation of an integer, this call will return the integer represented by the string. Otherwise this call returns zero.) */{ int32_t x, i; @@ -1394,8 +1465,9 @@ DOC(This call interprets s as a color and writes the 32-bit integer representati // Directory String Management // +CPP_NAME(reverse_seek_slash) FSTRING_LINK int32_t -reverse_seek_slash(String str, int32_t pos)/* +reverse_seek_slash_pos(String str, int32_t pos)/* DOC(This call searches for a slash in str by starting pos bytes from the end and going backwards.) */{ int32_t i = str.size - 1 - pos; while (i >= 0 && !char_is_slash(str.str[i])){ @@ -1407,14 +1479,14 @@ DOC(This call searches for a slash in str by starting pos bytes from the end and FSTRING_INLINE int32_t reverse_seek_slash(String str)/* DOC(This call searches for a slash in str by starting at the end and going backwards.) */{ - return(reverse_seek_slash(str, 0)); + return(reverse_seek_slash_pos(str, 0)); } FSTRING_INLINE String front_of_directory(String dir)/* DOC(This call returns a substring of dir containing only the file name or folder name furthest to the right in the directory.) DOC_SEE(substr) */{ - return substr(dir, reverse_seek_slash(dir) + 1); + return substr_tail(dir, reverse_seek_slash(dir) + 1); } FSTRING_INLINE String @@ -1424,53 +1496,49 @@ for the final file or folder name.) DOC_SEE(substr) */{ return substr(dir, 0, reverse_seek_slash(dir) + 1); } +CPP_NAME(set_last_folder) FSTRING_LINK fstr_bool -set_last_folder(String *dir, char *folder_name, char slash)/* +set_last_folder_sc(String *dir, char *folder_name, char slash)/* DOC_PARAM(dir, The dir parameter is the directory string in which to set the last folder in the directory.) DOC_PARAM(folder_name, The folder_name parameter is a null terminated string specifying the name to set at the end of the directory.) DOC_PARAM(slash, The slash parameter specifies what slash to use between names in the directory.) DOC(This call deletes the last file name or folder name in the dir string and appends the new provided one. If there is enough memory in dir this call returns non-zero.) */{ - char str[2]; fstr_bool result = 0; int32_t size = reverse_seek_slash(*dir) + 1; dir->size = size; - str[0] = slash; - str[1] = 0; - if (append(dir, folder_name)){ - if (append(dir, str)){ + if (append_sc(dir, folder_name)){ + if (append_s_char(dir, slash)){ result = 1; } } if (!result){ dir->size = size; } - return result; + return(result); } +CPP_NAME(set_last_folder) FSTRING_LINK fstr_bool -set_last_folder(String *dir, String folder_name, char slash)/* +set_last_folder_ss(String *dir, String folder_name, char slash)/* DOC_PARAM(dir, The dir parameter is the directory string in which to set the last folder in the directory.) DOC_PARAM(folder_name, The folder_name parameter is a string specifying the name to set at the end of the directory.) DOC_PARAM(slash, The slash parameter specifies what slash to use between names in the directory.) DOC(This call deletes the last file name or folder name in the dir string and appends the new provided one. If there is enough memory in dir this call returns non-zero.) */{ - char str[2]; fstr_bool result = 0; int32_t size = reverse_seek_slash(*dir) + 1; dir->size = size; - str[0] = slash; - str[1] = 0; - if (append(dir, folder_name)){ - if (append(dir, str)){ + if (append_ss(dir, folder_name)){ + if (append_s_char(dir, slash)){ result = 1; } } if (!result){ dir->size = size; } - return result; + return(result); } FSTRING_LINK String @@ -1482,7 +1550,7 @@ DOC_SEE(substr) */{ if (str.str[i] == '.') break; } ++i; - return make_string(str.str+i, str.size-i); + return(make_string(str.str+i, str.size-i)); } FSTRING_LINK fstr_bool @@ -1490,7 +1558,7 @@ remove_last_folder(String *str)/* DOC(This call attemps to delete a folder or filename off the end of a path string. This call returns non-zero on success.) */{ fstr_bool result = 0; - int32_t end = reverse_seek_slash(*str, 1); + int32_t end = reverse_seek_slash_pos(*str, 1); if (end >= 0){ result = 1; str->size = end + 1; @@ -1508,12 +1576,12 @@ DOC_PARAM(match_index, If this call succeeds match_index is filled with the inde DOC(This call tries to see if str matches any of the strings in str_set. If there is a match the call succeeds and returns non-zero. The matching rule is equivalent to the matching rule for match.) DOC_SEE(match) */{ - fstr_bool result = false; + fstr_bool result = 0; int32_t i = 0; for (; i < count; ++i, ++str_set){ - if (match(*str_set, str)){ + if (match_ss(*str_set, str)){ *match_index = i; - result = true; + result = 1; break; } } @@ -1530,10 +1598,10 @@ DOC_SEE(match) */{ # define ArrayCount(a) ((sizeof(a))/sizeof(*a)) #endif -struct Absolutes{ +typedef struct Absolutes{ String a[8]; int32_t count; -}; +} Absolutes; static void get_absolutes(String name, Absolutes *absolutes, fstr_bool implicit_first, fstr_bool implicit_last){ @@ -1582,7 +1650,7 @@ get_absolutes(String name, Absolutes *absolutes, fstr_bool implicit_first, fstr_ } static fstr_bool -wildcard_match(Absolutes *absolutes, char *x, int32_t case_sensitive){ +wildcard_match_c(Absolutes *absolutes, char *x, int32_t case_sensitive){ fstr_bool r = 1; String *a = absolutes->a; @@ -1590,12 +1658,12 @@ wildcard_match(Absolutes *absolutes, char *x, int32_t case_sensitive){ fstr_bool (*match_part_func)(char*, String); if (case_sensitive){ - match_func = match; - match_part_func = match_part; + match_func = match_cs; + match_part_func = match_part_cs; } else{ - match_func = match_insensitive; - match_part_func = match_part_insensitive; + match_func = match_insensitive_cs; + match_part_func = match_part_insensitive_cs; } if (absolutes->count == 1){ @@ -1636,22 +1704,22 @@ wildcard_match(Absolutes *absolutes, char *x, int32_t case_sensitive){ } } } - return r; + return(r); } static fstr_bool -wildcard_match(Absolutes *absolutes, String x, int32_t case_sensitive){ +wildcard_match_s(Absolutes *absolutes, String x, int32_t case_sensitive){ terminate_with_null(&x); - return wildcard_match(absolutes, x.str, case_sensitive); + return(wildcard_match_c(absolutes, x.str, case_sensitive)); } #endif -#ifdef FSTRING_IMPLEMENTATION +#if defined(FSTRING_IMPLEMENTATION) #undef FSTRING_IMPLEMENTATION #endif -#ifndef FSTRING_GUARD +#if !defined(FSTRING_GUARD) #define FSTRING_GUARD #endif diff --git a/internal_4coder_tests.cpp b/internal_4coder_tests.cpp index 9c956014..5fa02293 100644 --- a/internal_4coder_tests.cpp +++ b/internal_4coder_tests.cpp @@ -38,13 +38,13 @@ CUSTOM_COMMAND_SIG(load_lots_of_files){ char space[1024]; String str = make_fixed_width_string(space); - append(&str, LOTS_OF_FILES); - append(&str, '/'); + append_ss(&str, make_lit_string(LOTS_OF_FILES)); + append_s_char(&str, '/'); int size = str.size; for (int i = 0; i < list.count; ++i, ++info){ if (!info->folder){ - append(&str, make_string(info->filename, info->filename_len)); + append_ss(&str, make_string(info->filename, info->filename_len)); Buffer_Summary buffer = app->create_buffer(app, str.str, str.size, BufferCreate_Background); assert(buffer.size != 0); diff --git a/system_shared.cpp b/system_shared.cpp index ab0fa9b0..a8597ec8 100644 --- a/system_shared.cpp +++ b/system_shared.cpp @@ -109,7 +109,7 @@ sysshared_to_binary_path(String *out_filename, char *filename){ i32 size = system_get_binary_path(out_filename); if (size > 0 && size < max-1){ out_filename->size = size; - if (append(out_filename, filename) && terminate_with_null(out_filename)){ + if (append_sc(out_filename, filename) && terminate_with_null(out_filename)){ translate_success = 1; } } diff --git a/test/4cpp_new_lexer.h b/test/4cpp_new_lexer.h index fd8f0ecc..783c1a24 100644 --- a/test/4cpp_new_lexer.h +++ b/test/4cpp_new_lexer.h @@ -130,7 +130,7 @@ sub_match_list(char *chunk, int size, int pos, String_List list, int sub_size){ str_main = substr(str_main, 0, sub_size); for (i = 0; i < list.count; ++i){ str_check = list.data[i].str; - if (match(str_main, str_check)){ + if (match_sc(str_main, str_check)){ result.index = i; result.new_pos = pos + sub_size; break; @@ -140,7 +140,7 @@ sub_match_list(char *chunk, int size, int pos, String_List list, int sub_size){ else{ for (i = 0; i < list.count; ++i){ str_check = list.data[i].str; - if (match_part(str_main, str_check, &l)){ + if (match_part_scl(str_main, str_check, &l)){ result.index = i; result.new_pos = pos + l; break; @@ -530,7 +530,7 @@ cpp_lex_nonalloc(Lex_Data *S_ptr, int word_size = S.pos - S.token_start; if (S.pp_state == LSPP_body_if){ - if (match(make_string(S.tb, word_size), make_lit_string("defined"))){ + if (match_ss(make_string(S.tb, word_size), make_lit_string("defined"))){ S.token.type = CPP_TOKEN_DEFINED; S.token.flags = CPP_TFLAG_IS_OPERATOR | CPP_TFLAG_IS_KEYWORD; break; diff --git a/win32_4ed.cpp b/win32_4ed.cpp index 7c7a3228..af63c660 100644 --- a/win32_4ed.cpp +++ b/win32_4ed.cpp @@ -802,7 +802,7 @@ system_file_load_begin(char *filename){ if (fname_str.size < 1024){ char fixed_space[1024]; String fixed_str = make_fixed_width_string(fixed_space); - copy(&fixed_str, fname_str); + copy_ss(&fixed_str, fname_str); terminate_with_null(&fixed_str); replace_char(&fixed_str, '/', '\\'); @@ -944,10 +944,9 @@ internal Sys_Set_File_List_Sig(system_set_file_list){ if (directory.size > 0){ char dir_space[MAX_PATH + 32]; - String dir = make_string(dir_space, 0, MAX_PATH + 32); - append(&dir, directory); - char trail_str[] = "\\*"; - append(&dir, trail_str); + String dir = make_string_cap(dir_space, 0, MAX_PATH + 32); + append_ss(&dir, directory); + append_ss(&dir, make_lit_string("\\*")); terminate_with_null(&dir); char *c_str_dir = dir.str; @@ -961,8 +960,8 @@ Sys_Set_File_List_Sig(system_set_file_list){ i32 file_count = 0; BOOL more_files = 1; do{ - if (!match(find_data.cFileName, ".") && - !match(find_data.cFileName, "..")){ + if (!match_cs(find_data.cFileName, make_lit_string(".")) && + !match_cs(find_data.cFileName, make_lit_string(".."))){ ++file_count; i32 size = 0; for(;find_data.cFileName[size];++size); @@ -988,8 +987,8 @@ Sys_Set_File_List_Sig(system_set_file_list){ File_Info *info = file_list->infos; more_files = 1; do{ - if (!match(find_data.cFileName, ".") && - !match(find_data.cFileName, "..")){ + if (!match_cs(find_data.cFileName, make_lit_string(".")) && + !match_cs(find_data.cFileName, make_lit_string(".."))){ info->folder = (find_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0; info->filename = name; @@ -997,9 +996,9 @@ Sys_Set_File_List_Sig(system_set_file_list){ for(;find_data.cFileName[i];++i) *name++ = find_data.cFileName[i]; info->filename_len = i; *name++ = 0; - String fname = make_string(info->filename, - info->filename_len, - info->filename_len+1); + String fname = make_string_cap(info->filename, + info->filename_len, + info->filename_len+1); replace_char(&fname, '\\', '/'); ++info; } @@ -1364,7 +1363,7 @@ Sys_Post_Clipboard_Sig(system_post_clipboard){ memory_handle = GlobalAlloc(GMEM_MOVEABLE, str.size+1); if (memory_handle){ char *dest = (char*)GlobalLock(memory_handle); - copy_fast_unsafe(dest, str); + copy_fast_unsafe_cs(dest, str); GlobalUnlock(memory_handle); SetClipboardData(CF_TEXT, memory_handle); win32vars.next_clipboard_is_self = 1; @@ -1408,8 +1407,8 @@ Sys_CLI_Call_Sig(system_cli_call){ char command_line[2048]; String s = make_fixed_width_string(command_line); - copy(&s, make_lit_string("/C ")); - append_partial(&s, script_name); + copy_ss(&s, make_lit_string("/C ")); + append_partial_sc(&s, script_name); b32 success = terminate_with_null(&s); if (success){ @@ -2298,7 +2297,7 @@ WinMain(HINSTANCE hInstance, char *current_directory_mem = (char*)system_get_memory(required); DWORD written = GetCurrentDirectory(required, current_directory_mem); - String current_directory = make_string(current_directory_mem, written, required); + String current_directory = make_string_cap(current_directory_mem, written, required); terminate_with_null(¤t_directory); replace_char(¤t_directory, '\\', '/'); diff --git a/win32_api_impl.cpp b/win32_api_impl.cpp index 713c2805..6b5595a0 100644 --- a/win32_api_impl.cpp +++ b/win32_api_impl.cpp @@ -75,7 +75,7 @@ DOC_RETURN(This call returns non-zero if and only if the file exists.) if (len < sizeof(full_filename_space)){ full_filename = make_fixed_width_string(full_filename_space); - copy(&full_filename, make_string(filename, len)); + copy_ss(&full_filename, make_string(filename, len)); terminate_with_null(&full_filename); file = CreateFile(full_filename.str, GENERIC_READ, 0, 0, @@ -110,13 +110,13 @@ string. This call can also be used with rel set to ".." to traverse to parent folders. ) */{ - String directory = make_string(dir, *len, capacity); + String directory = make_string_cap(dir, *len, capacity); b32 result = 0; i32 old_size; char rel_path_space[1024]; String rel_path_string = make_fixed_width_string(rel_path_space); - copy(&rel_path_string, make_string(rel_path, rel_len)); + copy_ss(&rel_path_string, make_string(rel_path, rel_len)); terminate_with_null(&rel_path_string); if (rel_path[0] != 0){ @@ -130,8 +130,8 @@ folders. else{ if (directory.size + rel_len + 1 > directory.memory_size){ old_size = directory.size; - append_partial(&directory, rel_path); - append_partial(&directory, "\\"); + append_partial_sc(&directory, rel_path); + append_s_char(&directory, '\\'); if (Win32DirectoryExists(directory.str)){ result = 1; } @@ -153,7 +153,7 @@ DOC_PARAM(out, This parameter provides a character buffer that receives the path DOC_PARAM(capacity, This parameter specifies the maximum capacity of the out buffer.) DOC_RETURN(This call returns non-zero on success.) */{ - String str = make_string(out, 0, capacity); + String str = make_string_cap(out, 0, capacity); return(system_get_binary_path(&str)); } diff --git a/win32_ft_font.cpp b/win32_ft_font.cpp index 8c1f7079..69f85268 100644 --- a/win32_ft_font.cpp +++ b/win32_ft_font.cpp @@ -16,7 +16,7 @@ win32_ft_font_load(Partition *part, Render_Font *rf, char *name, char* filename = push_array(part, char, 256); if (filename != 0){ - String str = make_string(filename, 0, 256); + String str = make_string_cap(filename, 0, 256); sysshared_to_binary_path(&str, name); result = font_load_freetype(part, rf, filename, pt_size, tab_width, use_hinting);