From c2cd5e01e148e8b9b93b46b5257714b9124cc1c5 Mon Sep 17 00:00:00 2001 From: Will Anderson Date: Fri, 8 May 2026 19:44:31 -0500 Subject: [PATCH] fix: elb macOS OpenSSL + C master declarations header; add ELP missing imports elb.el: - Auto-detect Homebrew OpenSSL (-L$(brew --prefix openssl)/lib) so -lssl resolves on macOS without manual flags; no-op on Linux - Add -include elp-c-decls.h when present in out_dir: resolves undeclared cross-module calls in packages like ELP that lack explicit imports ELP source: - Add import "morphology.el" to all 29 language morphology modules - Add language module imports to morphology.el (all langs it dispatches to) These were missing since ELP was originally built as a monolithic unit --- elp/src/language-profile.elh | 92 +++++++++++++++++------------------ elp/src/morphology-akk.el | 1 + elp/src/morphology-akk.elh | 2 +- elp/src/morphology-ang.el | 1 + elp/src/morphology-ang.elh | 2 +- elp/src/morphology-ar.el | 1 + elp/src/morphology-ar.elh | 2 +- elp/src/morphology-cop.el | 1 + elp/src/morphology-cop.elh | 2 +- elp/src/morphology-de.el | 1 + elp/src/morphology-de.elh | 2 +- elp/src/morphology-egy.el | 1 + elp/src/morphology-egy.elh | 2 +- elp/src/morphology-enm.el | 1 + elp/src/morphology-enm.elh | 2 +- elp/src/morphology-es.el | 1 + elp/src/morphology-es.elh | 2 +- elp/src/morphology-fi.el | 1 + elp/src/morphology-fi.elh | 6 +-- elp/src/morphology-fr.el | 1 + elp/src/morphology-fr.elh | 2 +- elp/src/morphology-fro.el | 1 + elp/src/morphology-fro.elh | 2 +- elp/src/morphology-gez.el | 1 + elp/src/morphology-gez.elh | 2 +- elp/src/morphology-goh.el | 1 + elp/src/morphology-goh.elh | 2 +- elp/src/morphology-got.el | 1 + elp/src/morphology-got.elh | 2 +- elp/src/morphology-grc.el | 1 + elp/src/morphology-grc.elh | 2 +- elp/src/morphology-he.el | 1 + elp/src/morphology-he.elh | 2 +- elp/src/morphology-hi.el | 1 + elp/src/morphology-hi.elh | 2 +- elp/src/morphology-ja.el | 1 + elp/src/morphology-ja.elh | 2 +- elp/src/morphology-la.el | 1 + elp/src/morphology-la.elh | 2 +- elp/src/morphology-non.el | 1 + elp/src/morphology-non.elh | 2 +- elp/src/morphology-peo.el | 1 + elp/src/morphology-peo.elh | 2 +- elp/src/morphology-pi.el | 1 + elp/src/morphology-pi.elh | 2 +- elp/src/morphology-ru.el | 1 + elp/src/morphology-ru.elh | 2 +- elp/src/morphology-sa.el | 1 + elp/src/morphology-sa.elh | 2 +- elp/src/morphology-sga.el | 1 + elp/src/morphology-sga.elh | 2 +- elp/src/morphology-sux.el | 1 + elp/src/morphology-sux.elh | 2 +- elp/src/morphology-sw.el | 1 + elp/src/morphology-sw.elh | 2 +- elp/src/morphology-txb.el | 1 + elp/src/morphology-txb.elh | 2 +- elp/src/morphology-uga.el | 1 + elp/src/morphology-uga.elh | 2 +- elp/src/morphology.el | 11 +++++ elp/src/morphology.elh | 10 ++-- elp/src/vocabulary.elh | 38 +++++++-------- lang/dist/platform/elb | Bin 212312 -> 212432 bytes lang/elb.el | 9 +++- 64 files changed, 149 insertions(+), 102 deletions(-) diff --git a/elp/src/language-profile.elh b/elp/src/language-profile.elh index b138c4f..8436652 100644 --- a/elp/src/language-profile.elh +++ b/elp/src/language-profile.elh @@ -1,46 +1,46 @@ -// auto-generated by elc --emit-header - do not edit -extern fn lang_profile(code: String, word_order: String, morph_type: String, has_case: String, has_gender: String, script_dir: String, agreement: String, null_subject: String) -> Any -extern fn lang_get(profile: Any, key: String) -> String -extern fn lang_profile_en() -> Any -extern fn lang_profile_ja() -> Any -extern fn lang_profile_ar() -> Any -extern fn lang_profile_zh() -> Any -extern fn lang_profile_de() -> Any -extern fn lang_profile_es() -> Any -extern fn lang_profile_fi() -> Any -extern fn lang_profile_sw() -> Any -extern fn lang_profile_hi() -> Any -extern fn lang_profile_ru() -> Any -extern fn lang_profile_fr() -> Any -extern fn lang_profile_la() -> Any -extern fn lang_profile_he() -> Any -extern fn lang_profile_sa() -> Any -extern fn lang_profile_got() -> Any -extern fn lang_profile_non() -> Any -extern fn lang_profile_enm() -> Any -extern fn lang_profile_pi() -> Any -extern fn lang_profile_grc() -> Any -extern fn lang_profile_ang() -> Any -extern fn lang_profile_fro() -> Any -extern fn lang_profile_goh() -> Any -extern fn lang_profile_sga() -> Any -extern fn lang_profile_txb() -> Any -extern fn lang_profile_peo() -> Any -extern fn lang_profile_akk() -> Any -extern fn lang_profile_uga() -> Any -extern fn lang_profile_egy() -> Any -extern fn lang_profile_sux() -> Any -extern fn lang_profile_gez() -> Any -extern fn lang_profile_cop() -> Any -extern fn lang_from_code(code: String) -> Any -extern fn lang_default() -> Any -extern fn lang_is_isolating(profile: Any) -> Bool -extern fn lang_is_agglutinative(profile: Any) -> Bool -extern fn lang_is_fusional(profile: Any) -> Bool -extern fn lang_is_polysynthetic(profile: Any) -> Bool -extern fn lang_is_rtl(profile: Any) -> Bool -extern fn lang_has_null_subject(profile: Any) -> Bool -extern fn lang_has_case(profile: Any) -> Bool -extern fn lang_has_gender(profile: Any) -> Bool -extern fn lang_word_order(profile: Any) -> String -extern fn lang_code(profile: Any) -> String +// auto-generated by elc --emit-header — do not edit +extern fn lang_profile(code: String, word_order: String, morph_type: String, has_case: String, has_gender: String, script_dir: String, agreement: String, null_subject: String) -> [String] +extern fn lang_get(profile: [String], key: String) -> String +extern fn lang_profile_en() -> [String] +extern fn lang_profile_ja() -> [String] +extern fn lang_profile_ar() -> [String] +extern fn lang_profile_zh() -> [String] +extern fn lang_profile_de() -> [String] +extern fn lang_profile_es() -> [String] +extern fn lang_profile_fi() -> [String] +extern fn lang_profile_sw() -> [String] +extern fn lang_profile_hi() -> [String] +extern fn lang_profile_ru() -> [String] +extern fn lang_profile_fr() -> [String] +extern fn lang_profile_la() -> [String] +extern fn lang_profile_he() -> [String] +extern fn lang_profile_sa() -> [String] +extern fn lang_profile_got() -> [String] +extern fn lang_profile_non() -> [String] +extern fn lang_profile_enm() -> [String] +extern fn lang_profile_pi() -> [String] +extern fn lang_profile_grc() -> [String] +extern fn lang_profile_ang() -> [String] +extern fn lang_profile_fro() -> [String] +extern fn lang_profile_goh() -> [String] +extern fn lang_profile_sga() -> [String] +extern fn lang_profile_txb() -> [String] +extern fn lang_profile_peo() -> [String] +extern fn lang_profile_akk() -> [String] +extern fn lang_profile_uga() -> [String] +extern fn lang_profile_egy() -> [String] +extern fn lang_profile_sux() -> [String] +extern fn lang_profile_gez() -> [String] +extern fn lang_profile_cop() -> [String] +extern fn lang_from_code(code: String) -> [String] +extern fn lang_default() -> [String] +extern fn lang_is_isolating(profile: [String]) -> Bool +extern fn lang_is_agglutinative(profile: [String]) -> Bool +extern fn lang_is_fusional(profile: [String]) -> Bool +extern fn lang_is_polysynthetic(profile: [String]) -> Bool +extern fn lang_is_rtl(profile: [String]) -> Bool +extern fn lang_has_null_subject(profile: [String]) -> Bool +extern fn lang_has_case(profile: [String]) -> Bool +extern fn lang_has_gender(profile: [String]) -> Bool +extern fn lang_word_order(profile: [String]) -> String +extern fn lang_code(profile: [String]) -> String diff --git a/elp/src/morphology-akk.el b/elp/src/morphology-akk.el index 3d5cbc0..e543209 100644 --- a/elp/src/morphology-akk.el +++ b/elp/src/morphology-akk.el @@ -56,6 +56,7 @@ // ── String helpers ───────────────────────────────────────────────────────────── +import "morphology.el" fn akk_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-akk.elh b/elp/src/morphology-akk.elh index c13a7d8..6c3ac12 100644 --- a/elp/src/morphology-akk.elh +++ b/elp/src/morphology-akk.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn akk_str_ends(s: String, suf: String) -> Bool extern fn akk_str_len(s: String) -> Int extern fn akk_str_drop_last(s: String, n: Int) -> String diff --git a/elp/src/morphology-ang.el b/elp/src/morphology-ang.el index 0d533b0..e0d086b 100644 --- a/elp/src/morphology-ang.el +++ b/elp/src/morphology-ang.el @@ -36,6 +36,7 @@ // ── String helpers ───────────────────────────────────────────────────────────── +import "morphology.el" fn ang_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-ang.elh b/elp/src/morphology-ang.elh index f1b317a..9975651 100644 --- a/elp/src/morphology-ang.elh +++ b/elp/src/morphology-ang.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn ang_str_ends(s: String, suf: String) -> Bool extern fn ang_str_drop_last(s: String, n: Int) -> String extern fn ang_str_last_char(s: String) -> String diff --git a/elp/src/morphology-ar.el b/elp/src/morphology-ar.el index 6d3c121..c287e46 100644 --- a/elp/src/morphology-ar.el +++ b/elp/src/morphology-ar.el @@ -21,6 +21,7 @@ // ── String helpers ──────────────────────────────────────────────────────────── +import "morphology.el" fn ar_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-ar.elh b/elp/src/morphology-ar.elh index 71bdfd3..34ef396 100644 --- a/elp/src/morphology-ar.elh +++ b/elp/src/morphology-ar.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn ar_str_ends(s: String, suf: String) -> Bool extern fn ar_str_len(s: String) -> Int extern fn ar_str_drop_last(s: String, n: Int) -> String diff --git a/elp/src/morphology-cop.el b/elp/src/morphology-cop.el index b96b117..70f1826 100644 --- a/elp/src/morphology-cop.el +++ b/elp/src/morphology-cop.el @@ -54,6 +54,7 @@ // ── String helpers ────────────────────────────────────────────────────────────── +import "morphology.el" fn cop_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-cop.elh b/elp/src/morphology-cop.elh index 8be3aea..5ab0cb7 100644 --- a/elp/src/morphology-cop.elh +++ b/elp/src/morphology-cop.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn cop_str_ends(s: String, suf: String) -> Bool extern fn cop_str_len(s: String) -> Int extern fn cop_drop(s: String, n: Int) -> String diff --git a/elp/src/morphology-de.el b/elp/src/morphology-de.el index 979aa95..0ea107a 100644 --- a/elp/src/morphology-de.el +++ b/elp/src/morphology-de.el @@ -26,6 +26,7 @@ // Dat: dem der dem den // Gen: des der des der +import "morphology.el" fn de_article_def(gender: String, gram_case: String, number: String) -> String { if str_eq(number, "pl") { if str_eq(gram_case, "nom") { return "die" } diff --git a/elp/src/morphology-de.elh b/elp/src/morphology-de.elh index 23ce0d6..0a38b1c 100644 --- a/elp/src/morphology-de.elh +++ b/elp/src/morphology-de.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn de_article_def(gender: String, gram_case: String, number: String) -> String extern fn de_article_indef(gender: String, gram_case: String, number: String) -> String extern fn de_article(gender: String, gram_case: String, number: String, definite: String) -> String diff --git a/elp/src/morphology-egy.el b/elp/src/morphology-egy.el index c1bfef7..80c20d4 100644 --- a/elp/src/morphology-egy.el +++ b/elp/src/morphology-egy.el @@ -52,6 +52,7 @@ // ── String helpers ────────────────────────────────────────────────────────────── +import "morphology.el" fn egy_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-egy.elh b/elp/src/morphology-egy.elh index 22cf7c2..ba63eaf 100644 --- a/elp/src/morphology-egy.elh +++ b/elp/src/morphology-egy.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn egy_str_ends(s: String, suf: String) -> Bool extern fn egy_str_len(s: String) -> Int extern fn egy_drop(s: String, n: Int) -> String diff --git a/elp/src/morphology-enm.el b/elp/src/morphology-enm.el index e27f9b9..00215a7 100644 --- a/elp/src/morphology-enm.el +++ b/elp/src/morphology-enm.el @@ -31,6 +31,7 @@ // ── String helpers ───────────────────────────────────────────────────────────── +import "morphology.el" fn enm_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-enm.elh b/elp/src/morphology-enm.elh index c38c522..f6f4195 100644 --- a/elp/src/morphology-enm.elh +++ b/elp/src/morphology-enm.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn enm_str_ends(s: String, suf: String) -> Bool extern fn enm_drop(s: String, n: Int) -> String extern fn enm_first_char(s: String) -> String diff --git a/elp/src/morphology-es.el b/elp/src/morphology-es.el index d2762be..8b2a744 100644 --- a/elp/src/morphology-es.el +++ b/elp/src/morphology-es.el @@ -12,6 +12,7 @@ // ── String helpers (local, matching morphology.el conventions) ──────────────── +import "morphology.el" fn es_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-es.elh b/elp/src/morphology-es.elh index 551d6c0..a2ea5cd 100644 --- a/elp/src/morphology-es.elh +++ b/elp/src/morphology-es.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn es_str_ends(s: String, suf: String) -> Bool extern fn es_str_drop_last(s: String, n: Int) -> String extern fn es_str_last_char(s: String) -> String diff --git a/elp/src/morphology-fi.el b/elp/src/morphology-fi.el index 278550f..fbc58f9 100644 --- a/elp/src/morphology-fi.el +++ b/elp/src/morphology-fi.el @@ -25,6 +25,7 @@ // If only neutral vowels are found, default to "front" (the conservative choice // for borrowed words and those without clear back vowels). +import "morphology.el" fn fi_harmony(word: String) -> String { let n: Int = str_len(word) let i: Int = n - 1 diff --git a/elp/src/morphology-fi.elh b/elp/src/morphology-fi.elh index 6ab4de7..fc991ec 100644 --- a/elp/src/morphology-fi.elh +++ b/elp/src/morphology-fi.elh @@ -1,11 +1,11 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn fi_harmony(word: String) -> String extern fn fi_suffix(base: String, harmony: String) -> String extern fn fi_noun_case(stem: String, gram_case: String, number: String, harmony: String) -> String extern fn fi_str_last_char(s: String) -> String extern fn fi_apply_case(noun: String, gram_case: String, number: String) -> String extern fn fi_verb_stem(dict_form: String) -> String -extern fn fi_irregular_verb(dict_form: String) -> Any +extern fn fi_irregular_verb(dict_form: String) -> [String] extern fn fi_present_ending(stem: String, person: String, number: String, harmony: String) -> String extern fn fi_past_stem(stem: String) -> String extern fn fi_past_ending(stem: String, person: String, number: String, harmony: String) -> String @@ -14,4 +14,4 @@ extern fn fi_negative(verb: String, person: String, number: String) -> String extern fn fi_conjugate(verb: String, tense: String, person: String, number: String) -> String extern fn fi_question_suffix(harmony: String) -> String extern fn fi_make_question(verb_form: String, harmony: String) -> String -extern fn fi_full_paradigm(noun: String) -> Any +extern fn fi_full_paradigm(noun: String) -> [String] diff --git a/elp/src/morphology-fr.el b/elp/src/morphology-fr.el index 576e001..26f2a32 100644 --- a/elp/src/morphology-fr.el +++ b/elp/src/morphology-fr.el @@ -19,6 +19,7 @@ // ── String helpers (local, matching morphology.el conventions) ──────────────── +import "morphology.el" fn fr_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-fr.elh b/elp/src/morphology-fr.elh index 38957e1..a36ab8f 100644 --- a/elp/src/morphology-fr.elh +++ b/elp/src/morphology-fr.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn fr_str_ends(s: String, suf: String) -> Bool extern fn fr_str_drop_last(s: String, n: Int) -> String extern fn fr_str_last_char(s: String) -> String diff --git a/elp/src/morphology-fro.el b/elp/src/morphology-fro.el index f7ed551..d4aa7e8 100644 --- a/elp/src/morphology-fro.el +++ b/elp/src/morphology-fro.el @@ -53,6 +53,7 @@ // ── String helpers ───────────────────────────────────────────────────────────── +import "morphology.el" fn fro_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-fro.elh b/elp/src/morphology-fro.elh index 823bd0e..477bbae 100644 --- a/elp/src/morphology-fro.elh +++ b/elp/src/morphology-fro.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn fro_str_ends(s: String, suf: String) -> Bool extern fn fro_drop(s: String, n: Int) -> String extern fn fro_slot(person: String, number: String) -> Int diff --git a/elp/src/morphology-gez.el b/elp/src/morphology-gez.el index d1808f4..f4cc03d 100644 --- a/elp/src/morphology-gez.el +++ b/elp/src/morphology-gez.el @@ -64,6 +64,7 @@ // ── String helpers ───────────────────────────────────────────────────────────── +import "morphology.el" fn gez_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-gez.elh b/elp/src/morphology-gez.elh index c26912a..b23da81 100644 --- a/elp/src/morphology-gez.elh +++ b/elp/src/morphology-gez.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn gez_str_ends(s: String, suf: String) -> Bool extern fn gez_str_len(s: String) -> Int extern fn gez_str_drop_last(s: String, n: Int) -> String diff --git a/elp/src/morphology-goh.el b/elp/src/morphology-goh.el index d83c50e..7572afe 100644 --- a/elp/src/morphology-goh.el +++ b/elp/src/morphology-goh.el @@ -48,6 +48,7 @@ // ── String helpers ───────────────────────────────────────────────────────────── +import "morphology.el" fn goh_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-goh.elh b/elp/src/morphology-goh.elh index 2226247..3836290 100644 --- a/elp/src/morphology-goh.elh +++ b/elp/src/morphology-goh.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn goh_str_ends(s: String, suf: String) -> Bool extern fn goh_drop(s: String, n: Int) -> String extern fn goh_slot(person: String, number: String) -> Int diff --git a/elp/src/morphology-got.el b/elp/src/morphology-got.el index 5569989..e2d5301 100644 --- a/elp/src/morphology-got.el +++ b/elp/src/morphology-got.el @@ -49,6 +49,7 @@ // ── String helpers ───────────────────────────────────────────────────────────── +import "morphology.el" fn got_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-got.elh b/elp/src/morphology-got.elh index ef286f9..f5cc1ba 100644 --- a/elp/src/morphology-got.elh +++ b/elp/src/morphology-got.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn got_str_ends(s: String, suf: String) -> Bool extern fn got_str_drop_last(s: String, n: Int) -> String extern fn got_slot(person: String, number: String) -> Int diff --git a/elp/src/morphology-grc.el b/elp/src/morphology-grc.el index 741ced5..4640700 100644 --- a/elp/src/morphology-grc.el +++ b/elp/src/morphology-grc.el @@ -31,6 +31,7 @@ // ── String helpers ───────────────────────────────────────────────────────────── +import "morphology.el" fn grc_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-grc.elh b/elp/src/morphology-grc.elh index be5f997..1f565f0 100644 --- a/elp/src/morphology-grc.elh +++ b/elp/src/morphology-grc.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn grc_str_ends(s: String, suf: String) -> Bool extern fn grc_str_drop_last(s: String, n: Int) -> String extern fn grc_str_last_char(s: String) -> String diff --git a/elp/src/morphology-he.el b/elp/src/morphology-he.el index 7946d93..0d09f1c 100644 --- a/elp/src/morphology-he.el +++ b/elp/src/morphology-he.el @@ -51,6 +51,7 @@ // ── String helpers ───────────────────────────────────────────────────────────── +import "morphology.el" fn he_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-he.elh b/elp/src/morphology-he.elh index ed6304f..4d1241b 100644 --- a/elp/src/morphology-he.elh +++ b/elp/src/morphology-he.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn he_str_ends(s: String, suf: String) -> Bool extern fn he_str_len(s: String) -> Int extern fn he_str_drop_last(s: String, n: Int) -> String diff --git a/elp/src/morphology-hi.el b/elp/src/morphology-hi.el index d4cfa02..79eccdd 100644 --- a/elp/src/morphology-hi.el +++ b/elp/src/morphology-hi.el @@ -24,6 +24,7 @@ // ── String helpers ──────────────────────────────────────────────────────────── +import "morphology.el" fn hi_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-hi.elh b/elp/src/morphology-hi.elh index d012ddf..688c51a 100644 --- a/elp/src/morphology-hi.elh +++ b/elp/src/morphology-hi.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn hi_str_ends(s: String, suf: String) -> Bool extern fn hi_str_drop_last(s: String, n: Int) -> String extern fn hi_str_last_char(s: String) -> String diff --git a/elp/src/morphology-ja.el b/elp/src/morphology-ja.el index 2a09412..fdac71e 100644 --- a/elp/src/morphology-ja.el +++ b/elp/src/morphology-ja.el @@ -23,6 +23,7 @@ // Note: this is a heuristic classifier for romanized input. For production use // with native kana/kanji forms, the dictionary form (辞書形) must be consulted. +import "morphology.el" fn ja_verb_group(dict_form: String) -> String { // Irregular verbs (exact match on dictionary form) if str_eq(dict_form, "する") { return "irregular" } diff --git a/elp/src/morphology-ja.elh b/elp/src/morphology-ja.elh index 4ecf826..ee2f337 100644 --- a/elp/src/morphology-ja.elh +++ b/elp/src/morphology-ja.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn ja_verb_group(dict_form: String) -> String extern fn ja_ichidan_stem(dict_form: String) -> String extern fn ja_godan_stem_change(dict_form: String, row: String) -> String diff --git a/elp/src/morphology-la.el b/elp/src/morphology-la.el index a74da54..7feddbd 100644 --- a/elp/src/morphology-la.el +++ b/elp/src/morphology-la.el @@ -25,6 +25,7 @@ // ── String helpers ───────────────────────────────────────────────────────────── +import "morphology.el" fn la_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-la.elh b/elp/src/morphology-la.elh index 39bf57d..d31a70a 100644 --- a/elp/src/morphology-la.elh +++ b/elp/src/morphology-la.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn la_str_ends(s: String, suf: String) -> Bool extern fn la_str_drop_last(s: String, n: Int) -> String extern fn la_str_last_char(s: String) -> String diff --git a/elp/src/morphology-non.el b/elp/src/morphology-non.el index c7eafb6..3597535 100644 --- a/elp/src/morphology-non.el +++ b/elp/src/morphology-non.el @@ -27,6 +27,7 @@ // ── String helpers ───────────────────────────────────────────────────────────── +import "morphology.el" fn non_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-non.elh b/elp/src/morphology-non.elh index bdf7ce6..931b540 100644 --- a/elp/src/morphology-non.elh +++ b/elp/src/morphology-non.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn non_str_ends(s: String, suf: String) -> Bool extern fn non_drop(s: String, n: Int) -> String extern fn non_last(s: String) -> String diff --git a/elp/src/morphology-peo.el b/elp/src/morphology-peo.el index 1c12c7c..506ba02 100644 --- a/elp/src/morphology-peo.el +++ b/elp/src/morphology-peo.el @@ -31,6 +31,7 @@ // ── String helpers ───────────────────────────────────────────────────────────── +import "morphology.el" fn peo_drop(s: String, n: Int) -> String { let len: Int = str_len(s) if n >= len { return "" } diff --git a/elp/src/morphology-peo.elh b/elp/src/morphology-peo.elh index 56c507e..f0f408b 100644 --- a/elp/src/morphology-peo.elh +++ b/elp/src/morphology-peo.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn peo_drop(s: String, n: Int) -> String extern fn peo_ends(s: String, suf: String) -> Bool extern fn peo_slot(person: String, number: String) -> Int diff --git a/elp/src/morphology-pi.el b/elp/src/morphology-pi.el index bf53534..5aee9f0 100644 --- a/elp/src/morphology-pi.el +++ b/elp/src/morphology-pi.el @@ -30,6 +30,7 @@ // ── String helpers ───────────────────────────────────────────────────────────── +import "morphology.el" fn pi_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-pi.elh b/elp/src/morphology-pi.elh index 1de2c02..1bbf880 100644 --- a/elp/src/morphology-pi.elh +++ b/elp/src/morphology-pi.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn pi_str_ends(s: String, suf: String) -> Bool extern fn pi_drop(s: String, n: Int) -> String extern fn pi_last_char(s: String) -> String diff --git a/elp/src/morphology-ru.el b/elp/src/morphology-ru.el index d0fa913..baf54c5 100644 --- a/elp/src/morphology-ru.el +++ b/elp/src/morphology-ru.el @@ -35,6 +35,7 @@ // The heuristic returns the most probable gender. Caller should override // for known exceptions (путь, рубль are masc despite -ь). +import "morphology.el" fn ru_gender(noun: String) -> String { let n: Int = str_len(noun) if n == 0 { return "m" } diff --git a/elp/src/morphology-ru.elh b/elp/src/morphology-ru.elh index 6ef6791..1f0f081 100644 --- a/elp/src/morphology-ru.elh +++ b/elp/src/morphology-ru.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn ru_gender(noun: String) -> String extern fn ru_stem_type(noun: String, gender: String) -> String extern fn ru_noun_case(noun: String, gender: String, gram_case: String, number: String) -> String diff --git a/elp/src/morphology-sa.el b/elp/src/morphology-sa.el index ecd471e..1cc74e7 100644 --- a/elp/src/morphology-sa.el +++ b/elp/src/morphology-sa.el @@ -42,6 +42,7 @@ // ── String helpers ───────────────────────────────────────────────────────────── +import "morphology.el" fn sa_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-sa.elh b/elp/src/morphology-sa.elh index 368fc69..2583d3d 100644 --- a/elp/src/morphology-sa.elh +++ b/elp/src/morphology-sa.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn sa_str_ends(s: String, suf: String) -> Bool extern fn sa_str_drop_last(s: String, n: Int) -> String extern fn sa_slot(person: String, number: String) -> Int diff --git a/elp/src/morphology-sga.el b/elp/src/morphology-sga.el index 8f92363..a7d8eae 100644 --- a/elp/src/morphology-sga.el +++ b/elp/src/morphology-sga.el @@ -31,6 +31,7 @@ // ── String helpers ───────────────────────────────────────────────────────────── +import "morphology.el" fn sga_drop(s: String, n: Int) -> String { let len: Int = str_len(s) if n >= len { return "" } diff --git a/elp/src/morphology-sga.elh b/elp/src/morphology-sga.elh index 8bc0529..704ea1b 100644 --- a/elp/src/morphology-sga.elh +++ b/elp/src/morphology-sga.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn sga_drop(s: String, n: Int) -> String extern fn sga_first(s: String) -> String extern fn sga_rest(s: String) -> String diff --git a/elp/src/morphology-sux.el b/elp/src/morphology-sux.el index 92aab5e..8f0e72f 100644 --- a/elp/src/morphology-sux.el +++ b/elp/src/morphology-sux.el @@ -53,6 +53,7 @@ // ── String helpers ───────────────────────────────────────────────────────────── +import "morphology.el" fn sux_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-sux.elh b/elp/src/morphology-sux.elh index aa40e56..f476446 100644 --- a/elp/src/morphology-sux.elh +++ b/elp/src/morphology-sux.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn sux_str_ends(s: String, suf: String) -> Bool extern fn sux_str_drop_last(s: String, n: Int) -> String extern fn sux_str_last_char(s: String) -> String diff --git a/elp/src/morphology-sw.el b/elp/src/morphology-sw.el index aed8481..5b614a8 100644 --- a/elp/src/morphology-sw.el +++ b/elp/src/morphology-sw.el @@ -24,6 +24,7 @@ // ── String helpers ──────────────────────────────────────────────────────────── +import "morphology.el" fn sw_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-sw.elh b/elp/src/morphology-sw.elh index 6de2ff0..4f5260d 100644 --- a/elp/src/morphology-sw.elh +++ b/elp/src/morphology-sw.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn sw_str_ends(s: String, suf: String) -> Bool extern fn sw_str_drop_last(s: String, n: Int) -> String extern fn sw_str_first_char(s: String) -> String diff --git a/elp/src/morphology-txb.el b/elp/src/morphology-txb.el index c465fcc..a2dae65 100644 --- a/elp/src/morphology-txb.el +++ b/elp/src/morphology-txb.el @@ -30,6 +30,7 @@ // ── String helpers ───────────────────────────────────────────────────────────── +import "morphology.el" fn txb_drop(s: String, n: Int) -> String { let len: Int = str_len(s) if n >= len { return "" } diff --git a/elp/src/morphology-txb.elh b/elp/src/morphology-txb.elh index 27794bf..6c02972 100644 --- a/elp/src/morphology-txb.elh +++ b/elp/src/morphology-txb.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn txb_drop(s: String, n: Int) -> String extern fn txb_ends(s: String, suf: String) -> Bool extern fn txb_slot(person: String, number: String) -> Int diff --git a/elp/src/morphology-uga.el b/elp/src/morphology-uga.el index 435f86d..2c4b8ff 100644 --- a/elp/src/morphology-uga.el +++ b/elp/src/morphology-uga.el @@ -48,6 +48,7 @@ // ── String helpers ───────────────────────────────────────────────────────────── +import "morphology.el" fn uga_str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology-uga.elh b/elp/src/morphology-uga.elh index 37a8aea..ffba827 100644 --- a/elp/src/morphology-uga.elh +++ b/elp/src/morphology-uga.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn uga_str_ends(s: String, suf: String) -> Bool extern fn uga_str_len(s: String) -> Int extern fn uga_str_drop_last(s: String, n: Int) -> String diff --git a/elp/src/morphology.el b/elp/src/morphology.el index 2031194..6d7fe00 100644 --- a/elp/src/morphology.el +++ b/elp/src/morphology.el @@ -33,6 +33,17 @@ // ── String helpers ──────────────────────────────────────────────────────────── +import "language-profile.el" +import "morphology-es.el" +import "morphology-fr.el" +import "morphology-de.el" +import "morphology-ru.el" +import "morphology-fi.el" +import "morphology-ar.el" +import "morphology-hi.el" +import "morphology-sw.el" +import "morphology-la.el" +import "morphology-ja.el" fn str_ends(s: String, suf: String) -> Bool { return str_ends_with(s, suf) } diff --git a/elp/src/morphology.elh b/elp/src/morphology.elh index d150d39..cd756a1 100644 --- a/elp/src/morphology.elh +++ b/elp/src/morphology.elh @@ -1,4 +1,4 @@ -// auto-generated by elc --emit-header - do not edit +// auto-generated by elc --emit-header — do not edit extern fn str_ends(s: String, suf: String) -> Bool extern fn str_last_char(s: String) -> String extern fn str_last2(s: String) -> String @@ -8,7 +8,7 @@ extern fn is_vowel(c: String) -> Bool extern fn morph_apply_suffix(base: String, suffix: String) -> String extern fn en_irregular_plural(word: String) -> String extern fn en_irregular_singular(word: String) -> String -extern fn en_irregular_verb(base: String) -> Any +extern fn en_irregular_verb(base: String) -> [String] extern fn en_verb_3sg(base: String) -> String extern fn en_should_double_final(base: String) -> Bool extern fn en_verb_past(base: String) -> String @@ -16,10 +16,10 @@ extern fn en_verb_gerund(base: String) -> String extern fn en_pluralize_regular(singular: String) -> String extern fn en_verb_form(base: String, tense: String, person: String, number: String) -> String extern fn agree_determiner(det: String, noun: String) -> String -extern fn morph_pluralize(noun: String, profile: Any) -> String +extern fn morph_pluralize(noun: String, profile: [String]) -> String extern fn morph_map_canonical(verb: String, code: String) -> String -extern fn morph_conjugate(verb: String, tense: String, person: String, number: String, profile: Any) -> String -extern fn morph_inflect(word: String, features: String, profile: Any) -> String +extern fn morph_conjugate(verb: String, tense: String, person: String, number: String, profile: [String]) -> String +extern fn morph_inflect(word: String, features: String, profile: [String]) -> String extern fn pluralize(singular: String) -> String extern fn singularize(plural: String) -> String extern fn verb_form(base: String, tense: String, person: String, number: String) -> String diff --git a/elp/src/vocabulary.elh b/elp/src/vocabulary.elh index 3633adc..f91be96 100644 --- a/elp/src/vocabulary.elh +++ b/elp/src/vocabulary.elh @@ -1,20 +1,20 @@ -// auto-generated by elc --emit-header - do not edit -extern fn lex_word(entry: Any) -> String -extern fn lex_pos(entry: Any) -> String -extern fn lex_form(entry: Any, idx: Int) -> String -extern fn lex_class(entry: Any) -> String -extern fn make_entry(word: String, pos: String, f0: String, f1: String, f2: String, f3: String, f4: String, cls: String) -> Any -extern fn make_entry2(word: String, pos: String, f0: String, f1: String, cls: String) -> Any -extern fn make_entry3(word: String, pos: String, f0: String, f1: String, f2: String, cls: String) -> Any -extern fn make_entry1(word: String, pos: String, f0: String, cls: String) -> Any -extern fn build_vocab() -> Any -extern fn get_vocab() -> Any -extern fn vocab_lookup(word: String, lang_code: String) -> Any -extern fn vocab_lookup_en(word: String) -> Any +// auto-generated by elc --emit-header — do not edit +extern fn lex_word(entry: [String]) -> String +extern fn lex_pos(entry: [String]) -> String +extern fn lex_form(entry: [String], idx: Int) -> String +extern fn lex_class(entry: [String]) -> String +extern fn make_entry(word: String, pos: String, f0: String, f1: String, f2: String, f3: String, f4: String, cls: String) -> [String] +extern fn make_entry2(word: String, pos: String, f0: String, f1: String, cls: String) -> [String] +extern fn make_entry3(word: String, pos: String, f0: String, f1: String, f2: String, cls: String) -> [String] +extern fn make_entry1(word: String, pos: String, f0: String, cls: String) -> [String] +extern fn build_vocab() -> [[String]] +extern fn get_vocab() -> [[String]] +extern fn vocab_lookup(word: String, lang_code: String) -> [String] +extern fn vocab_lookup_en(word: String) -> [String] extern fn vocab_synonym(word: String, lang_register: String, lang_code: String) -> String -extern fn vocab_by_pos(pos: String) -> Any -extern fn vocab_by_class(cls: String) -> Any -extern fn entry_found(entry: Any) -> Bool -extern fn entry_word(entry: Any) -> String -extern fn entry_pos(entry: Any) -> String -extern fn entry_form(entry: Any, n: Int) -> String +extern fn vocab_by_pos(pos: String) -> [[String]] +extern fn vocab_by_class(cls: String) -> [[String]] +extern fn entry_found(entry: [String]) -> Bool +extern fn entry_word(entry: [String]) -> String +extern fn entry_pos(entry: [String]) -> String +extern fn entry_form(entry: [String], n: Int) -> String diff --git a/lang/dist/platform/elb b/lang/dist/platform/elb index a397f4bd678d9d970a41eb1aae5056b70567e1f1..187092f3642f2a0385dcff20a9cb1277cda1c642 100755 GIT binary patch delta 48485 zcmaI93tW`N_dov3!$m+qV0T%rvI{66A|N23APaa6Z{Yoosfnp6c~1@0EX_+i4K`jA zyp*n)ni`r}Sl%ivEW22#pjnz(Qkr5S|Mz*GUETVAet%yteV#ez%$YN1&YU@OW}fxC z`<^xbc$R%9pZY`jzMJ2iyG&w|Bn@%FKln4}E^p5|`_(+qz-RRuxaI+0#5x=H_{u7E zp^ci#&Rl60%x^K1!N;g!tDUt1Z&uS8d9nW=FiHj*eTAOg4we?)G5|* zDpw=fP7>h{m7R#et1iy_<~!|YtcEALM8p&}lcXd`D)j+P;YnE<5+X@5-UINr=x144 zh(ffVlXQ?Ta51{C2e)Q`JV%^d=6E|vHS7d1q>cxO7wM3lhPbmIUxweCobjwvJL2?_ur&);HWgP#!SxfhX zaZ-7mlg|1Xztb!)GYX|UPLj1wl5UwTNlLAgzjd^$RQ{o>RKJr+1O5iiD3yL$>!i2V zIT@`jK!1&2(I94hj;r5v6Vz8@z*tDP6?ZNwH8|$M|X+c0UsXYG?tr zs7HXub4kiQR0x=w#IrmCOID+T0nIm1CFmmKk*I;ziI18Ow3=CI!C90&9?=F^6H(Sg z4YZDOq=l#_P}X<`SR){S=|NMK*6lzmgYG{7zRpQ@(PwHoX|OIoGTv1_%Kf6_dn`D|C4 zR*#WZ4ZP6HFIKWX1P|)M9jNcXH%ZC>XQ}=M%!ztX2R%OtK6Oq8>$|+CXN2cqJC7fe z6#n4%NEaHGi@ee^Bm{N8b(JtSRL|df8EWrrtNSWH?-?6PiY4-o(ISnUI+{PxXzHw$ z-0T(MYzBAk^Lv{xW+iLh4#Gzk55n7EOIE*xD_%O2JJ?|w={0-TSsUl&?6}=Gd&l2{ zKi=-_BI#H6WBL-+if$(<51i2p^w1oTtTfO&dUn?ivm`6GRhZ8DryVvVS@{F+FZ)R4 zt)OwW?!jcGGih9s_M4#L7SuRdDfrVgy<)F>Dp{$;`#c}XyWHPixkri;&&PYmX1W3L zsQX1JN;_idBw-rqt;6xI*^^!!a8lJH4NOi_!uT0)W62>vA8|ORDezrt92^|Au-94A ztAejcQKw7`)T@=XmNFb#szhhDI`Z6_qDU!Hc^FJ#5=`NdM6mF6F4DmAub}!z0?bHK zZlG~!V!x^llpTerb{hSSDuhkY6*fU%rYDUE2KK9_CL=HF8P30N;VoxA$$xDTX6QQoO}5MPfS3G6hXFPY9W>1)$FInjMl2asRFHElcXBAGbzgL7E(i3)i89{-+?3X z{|4@xi%CiYp6TBvDMQdTa+;d823Y%{`*lu%)~#IeF%Ip45*Z-mt1+wo#%O&fS!>l5 zl8|EZoTULYzXG9@`=A>(8&-zrhA&bStXlf?W|9)-6nH~&qE?KU6M@znocZe5Vs7v? z^?EBsxdBViIz=8k#QKZPGJb(N>{fkcj8ty#SS>nsXN$B$E$>QEt~p5!7L46IzR-8X zILtq-lF@qKiFy-cg?yyr8uL#n3L0`~%xJB*(fnbjxs{^)hIblQjAM=D+yPb{Wc|gC z&*-51#IyZEO5X2)h61cVs0?)0^LBy<9h7fWn8A9^4)aV^&Z;n@^$R>nVJh>GRCUUH z3fL#IRQ{T~bbxpc#n4telZ6_s^S!0=`;V+xE1_C#{<#BI4I|v_EuAGAS`AhLW?Qyu%up}EU#7NfT4*Cxrz$Vn8;8`3Rixg! z&a6Z2Yzf~lwJ8sdEHNHaeZV(YE< zFwW{&0DqXcl3p+jKcqYGTan4v8`{b5XY$VsJxf}3lFBpim%Kw6s<>g810GbotV%C; zR_;5wS;L&%ZXmYBtoO&X4zfN+tkHx4;`D%5s8wSoe`~3&eu%w(cxNRB)A_nlYWN3y zHi3`n5uaddQK7`Se`wrf)YG9|1M1y|$mLITR-#ew8r;K&vd*E7&N`4^@HdrA>#SS` zVb0RduoZu6>jzE3=Dusp8*I4!8ZHdDTAkFO>f%^u1z|zWfmvkZw4@uXM&QZzR9*kp zSxNJ<**I`D&}T&$O-`Nl1n5Xf^j?yVg68OS);V~0^xn0o_z@~vTB0JYrb{IZj=yyx z4Gygj$0X$`b)XE^ady~mk}?MGh0Hc+SOv&H5M!7B-CSyrTx@I6ZSc}rA{z$TEBY{{ zKi+?b)XN-aCj!l|fFK$6*D0WL34$B7=`Ku32KA%4W@~0KU?yjqxZg2|8)$7~Z{Yz` zqVWC^S{R8IR6gTmWfowiSbNp-3|SR76tG8jtIk=SH2|;@5Y?D5X$>gs0VAw6nsH*% zk`BTosXpC_uT$x4LX864%}txlQkwEq~f!51f=g@V*d?8=6TC`$lWM*o!AkXc|y5cLb(F z74US5LXq4*z-hkFdzhrwK} z&i>X#s7))$Y@QgD8nXxO)Vk7|5d^Hkx&T;mGT$H=y(EX+`0POwrlQe0gDXK{UWN9S zK|Prt2{Os&lK7>dm=-M`Hi-%f!$?QpIdfxha>gyG%vo6oQB0U#y=L2%k&rCqA6lVF zVc%sb_q6w0(p$1}#}0?Pcqw=p%iz8tS7fKz{O^#bz4F0;+^PkUd>)??8pXcmt3yZo z?wzHX#$OTe4fs2ayR=MYBY0-ZNEZxl!E8P%tdENeYFBXfp^2Yw*-4I?#r?zD`v(G8 zjpfi}U#&o|SLxYFzAJ1vdy>1G!dMcIF?BH1NIou#8I6$;G%q9Z&fkv?bVjX{TruUb zdHjMYm+jzYbFlCInIx8_p>bX|;_8pKf5$5$O!CYmKGkgSDnnImM(eFBxnd6U{RiZd zlVLfT%4H1FU4GP@#D3v-%%fQ-*v9jkcD|kmU6gVVl0Ki~mEk&;#t($&`6hy$W;@!Z zBZ>P)OTTM34z0Sa%7z6Ru^>~m~&~tJG|JWq>=V8$axi<2 z*G2XXsF(qNg(mjQkn|Ma()%vFi^4O^z(=-f!CvE2TE)t2CSTVoiq!iYKi;aZ95<8q z>7B!ewAQoHd`j!Qz+A|n#ze4N3*I%4skdhGv#oW3*?>@ZSq=6SPD+wL)N8PI;*G6o zP(!1_3~L}tf2ZK(q$5rBMl0v}Q97d;waIfy51S6Og|-ki?s3EL&5MeW<(d4As6H+S zP?>Bhj0Z&fu!}qp-qpN9@EvmQgUHSOB(V7DI{Va&>(EJxoTXAk(UxL8cl^Km`MF84mG z)fYUjT?EoY`RyX@ZD#pO_0dO{t~1ye9OWz91+yc3N4qqtxzJW~0>9ZVj8$^4_z-r1 zw}}t(<-m~Dm3m7Jw1U3E2gX0knZ7P<^$M{*$tU;ZR|M0zu z{YctFK#-m`@w#{;k8E#Yz4-X{xqfaoK82`6ITPn+`Frh$Q;iw68pF6b=}Jr%N;H&i zm>zCLMfcPd4B<+;4Q}@rDLgJYi7n-0k|X3}#r*kB?V+(l$$4^dF@M-8jJHbZD|ajA z&t$YVQq^Q8?J4b$)9}qSb;DCern)aBojuKOrUbKc?%pBZWhChS;zyFZ%f4Wk8OFDD z2xforqa7;TB3-dOxLHT?iK$7x*TJJgy4Rr=CNHgVRm%CU)G&6ApGh_Pe-2zziPMfI zL|IL_(jhmr>vo;rPi-CBFclupUTwdtf@N0qlgtg?AJrb=PPy{Dw3hvUa#cbAE_W&| zphQF_s^4xd9jZ%`l*{DHp`@!Wt(+XfQ4gaGu`~GStX}|5_{&rI=Y}9|>XgPlGYWCX7PPx=XmR9S7<6a0KuSYXlw&3oRCvNZH!k{&yOGWb7b z1NXJWqSu+0u)r0lNO+qql-X_J6rX7sK`Y-^mexLgZIr)S&_IT$;n6|vo*l;CFFB-KD3Ojc9ND?cuUF}o|qfPungrI*-Ab!H!=u9P<%GrRypu~(*boX zVXtrIW*Y7R?qIKF(w=1HCU3|M#yV-}63+(lu3Z-Udz1d)bu5#L?ls3dade-;FLv>l zou=@=yR;jB;VHY-23T)TCJMx@^o+1H+@fcgrQvsa23s0_Q}H@$6`ru(GQ0J517}!o z*?+CK9pGfW*?d{oX>J$Y&>@4hn6qwr`Jx*)c5598*eOJh@LWoXEY<56Ux!Zakv3Lm z)-GO{A;FED=3}~<Wrig--V2w6Xw_vx8Ll;o8yBv5^Qbw<9Ugv^h!&33w?(F)&pQc6i#6urBHGp zvKcTM$Z$OEAzV4%*elHJP1T<^r4`Dwyy~rYo+e6vYn1A^_11cRp;rh+F>mq4UVULp zy?c+#IHEP1)a9U>8-o?&E8l;-I0lQLsW__I`7#h z%)A>Uv;xy2;18k6FjfFY-j?297WRc zj5mI5hHa{Yz^{VNE^q-~P!Q`*auV-CzPF#A1YZgg68ssv;PE85d}Si$J&LFLJx|dqpTuQFRRQw3K%xUYP)Q;7r;um0{}PHmFoaC& z3tl{+FI&Wq4(KjVo5&wwqa%{9{~*wGY#x} zws)edvc127=j|qGhw4IP^2+dv=h`yeR9=+aQcP2?Vfo|N?y`7?vsu`Yb$pd|K?pB-d`qrE;T%Zr#+ z_-M43dCK50m+z?=UOXs@mku^z)vg?@Yx58=1A>Rb=hE)c?E3)adocIX2TccPD%?SW zj^Kes{NiB$z}rACb(NOu1104y&Me0?(Y{=7MF2mfD!c`-+K%0DW8ptd1De~W@OgC^ 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 delta 48139 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 Z|MDM_Iik~?<<+KrZGLgMJBH8I{||sKw>