From e62d7cd640d66e3108ee42d45e17b7c695109310 Mon Sep 17 00:00:00 2001 From: Cesa-V Date: Mon, 15 Jun 2026 15:55:30 -0300 Subject: [PATCH] Split inspection control fields --- LOG.md | 1 + pre_process/preprocess_pdf.py | 50 ++++++- ...specoes_c105_2805_2026-06-15_inspecoes.csv | 38 +++--- ...pecoes_c105_2805_2026-06-15_inspecoes.json | 126 ++++++++++++++++++ 4 files changed, 195 insertions(+), 20 deletions(-) diff --git a/LOG.md b/LOG.md index c8956c6..4dee144 100644 --- a/LOG.md +++ b/LOG.md @@ -13,3 +13,4 @@ Legenda de autores: | 2026-06-15 | 15:41 | VTO | Pré-processou PDF de inspeções | `raw/documento joaomarcos.pdf`; `pre_process/documento_joaomarcos_texto.txt`; `pre_process/documento_joaomarcos_inspecoes.json`; `pre_process/documento_joaomarcos_inspecoes.csv`; `pre_process/preprocess_pdf.py` | 18 inspeções extraídas; grafias originais preservadas, inclusive `INPEÇÃO`. | | 2026-06-15 | 15:41 | VTO | Separou orientações permanentes do histórico | `CONTEXTO.md`; `LOG.md` | Orientações movidas para `CONTEXTO.md`; `LOG.md` passou a usar data, hora e tag de autor. | | 2026-06-15 | 15:47 | VTO | Renomeou PDF e artefatos derivados com nome descritivo | `raw/relatorio_ciclo_inspecoes_c105_2805_2026-06-15.pdf`; `pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_texto.txt`; `pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.json`; `pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.csv`; `pre_process/preprocess_pdf.py` | Nome antigo removia contexto técnico; novo padrão usa tipo do documento, modelo, matrícula e data do relatório. | +| 2026-06-15 | 15:54 | VTO | Separou campos de controle e duração no pré-processamento | `pre_process/preprocess_pdf.py`; `pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.json`; `pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.csv` | Criadas colunas `tso`, `letra`, `nivel`, `var_media`, `duracao`, `duracao_valor` e `duracao_unidade`; `D` tratado como dias e `H` como horas. | diff --git a/pre_process/preprocess_pdf.py b/pre_process/preprocess_pdf.py index b795cf7..97fe97f 100644 --- a/pre_process/preprocess_pdf.py +++ b/pre_process/preprocess_pdf.py @@ -32,6 +32,38 @@ def normalize_interval(value): return re.sub(r"\s+", " ", value.replace("VÔO", "VOO")).strip() +def parse_control_fields(tokens): + fields = { + "tso": "", + "letra": "", + "nivel": "", + "var_media": "", + "duracao": "", + "duracao_valor": "", + "duracao_unidade": "", + } + + if len(tokens) >= 2 and tokens[-1] in {"D", "H"} and tokens[-2].isdigit(): + duracao_valor = tokens[-2] + duracao_codigo = tokens[-1] + tokens = tokens[:-2] + fields["duracao"] = f"{duracao_valor} {duracao_codigo}" + fields["duracao_valor"] = int(duracao_valor) + fields["duracao_unidade"] = "dias" if duracao_codigo == "D" else "horas" + + if len(tokens) == 1: + fields["letra"] = tokens[0] + elif len(tokens) >= 2: + fields["tso"] = tokens[0] + fields["letra"] = tokens[1] + if len(tokens) >= 3: + fields["nivel"] = tokens[2] + if len(tokens) >= 4: + fields["var_media"] = " ".join(tokens[3:]) + + return fields + + def split_records(text): records = [] current = [] @@ -91,7 +123,9 @@ def parse_record(record): tokens = right_before_interval.split() zera = tokens[0] if tokens else "" - controle = " ".join(tokens[1:]) + controle_tokens = tokens[1:] + controle = " ".join(controle_tokens) + control_fields = parse_control_fields(controle_tokens) especial_marker = " Especial (a contar dela mesma" if especial_marker in left_body: @@ -130,6 +164,13 @@ def parse_record(record): "referencia": referencia, "tipo_vencimento": "Término da Anterior", "zera": zera, + "tso": control_fields["tso"], + "letra": control_fields["letra"], + "nivel": control_fields["nivel"], + "var_media": control_fields["var_media"], + "duracao": control_fields["duracao"], + "duracao_valor": control_fields["duracao_valor"], + "duracao_unidade": control_fields["duracao_unidade"], "controle_original": controle, "intervalo_horas_voo": intervalo_horas_voo, "intervalo_meses_continuos": intervalo_meses_continuos, @@ -158,6 +199,13 @@ def main(): "referencia", "tipo_vencimento", "zera", + "tso", + "letra", + "nivel", + "var_media", + "duracao", + "duracao_valor", + "duracao_unidade", "controle_original", "intervalo_horas_voo", "intervalo_meses_continuos", diff --git a/pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.csv b/pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.csv index 004ae57..5302f55 100644 --- a/pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.csv +++ b/pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.csv @@ -1,19 +1,19 @@ -seq;sigla_mnt;descricao_mnt;referencia;tipo_vencimento;zera;controle_original;intervalo_horas_voo;intervalo_meses_continuos;intervalo_pousos;intervalos -2;INSP 1A;INSPEÇÃO CHECK 1A;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;A B 3 3 D;300:00 HORAS DE VOO;8 MESES CONTÍNUOS;;300:00 HORAS DE VOO | 8 MESES CONTÍNUOS -3;INSP 2A;INSPEÇÃO CHECK 2A;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;A B 10 4 D;600:00 HORAS DE VOO;16 MESES CONTÍNUOS;;600:00 HORAS DE VOO | 16 MESES CONTÍNUOS -4;INSP 3A;INSPEÇÃO CHECK 3A;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;A B 10 5 D;900:00 HORAS DE VOO;24 MESES CONTÍNUOS;;900:00 HORAS DE VOO | 24 MESES CONTÍNUOS -5;INSP 2Y;INSPEÇÃO CALENDÁRICA DE 2 YEARS;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;B B 5 5 D;;24 MESES CONTÍNUOS;;24 MESES CONTÍNUOS -6;CHECK 300;CHECK OPERACIONAL DE 300FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;A O 6 H;300:00 HORAS DE VOO;;;300:00 HORAS DE VOO -7;CHECK 400;CHECK OPERACIONAL DE 400FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;A O 6 H;400:00 HORAS DE VOO;;;400:00 HORAS DE VOO -8;1-INSP AOL;INSPEÇÃO AOL 295-019;Última inspeção;Término da Anterior;N;B 1 D;;;3800 POUSOS;3800 POUSOS -9;2-INSP AOL;INSPEÇÃO AOL 295-019;Última Inspeção Específica 8 1-INSP AOL;Término da Anterior;N;B 1 D;;;2000 POUSOS;2000 POUSOS -10;3-INSP AOL;INSPEÇÃO AOL 295-019;Última Inspeção Específica 9 2-INSP AOL;Término da Anterior;N;B 1 D;;;2000 POUSOS;2000 POUSOS -14;INSP 8Y;INSPEÇÃO CALENDÁRICA DE 8 YEARS;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;B P 15 20 D;;96 MESES CONTÍNUOS;;96 MESES CONTÍNUOS -15;INSP 1C;INSPEÇÃO CHECK 1C;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;C P 10 65 D;2400:00 HORAS DE VOO;48 MESES CONTÍNUOS;;2400:00 HORAS DE VOO | 48 MESES CONTÍNUOS -16;INSP 2C;INSPEÇÃO GERAL CHECK 2C;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;C P 60 10 D;4800:00 HORAS DE VOO;96 MESES CONTÍNUOS;;4800:00 HORAS DE VOO | 96 MESES CONTÍNUOS -17;INSP 4Y;INSPEÇÃO CALENDÁRICA DE 4 YEARS;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;B P 10 10 D;;48 MESES CONTÍNUOS;;48 MESES CONTÍNUOS -18;INSP 100FH BR01;INSPEÇÃO DE 100 FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;O 1 H;100:00 HORAS DE VOO;;;100:00 HORAS DE VOO -19;INSP 2400F BR01;INPEÇÃO 2400FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;O 3 H;2400:00 HORAS DE VOO;;;2400:00 HORAS DE VOO -20;INSP 3000F BR01;INSPEÇÃO 3000FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;B 1 D;3000:00 HORAS DE VOO;;;3000:00 HORAS DE VOO -22;INSP 1000F;INPEÇÃO 1000FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;B 1 D;1000:00 HORAS DE VOO;;;1000:00 HORAS DE VOO -23;INSP 50FH;INSPEÇÃO 50 FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;B 1 D;50:00 HORAS DE VOO;;;50:00 HORAS DE VOO +seq;sigla_mnt;descricao_mnt;referencia;tipo_vencimento;zera;tso;letra;nivel;var_media;duracao;duracao_valor;duracao_unidade;controle_original;intervalo_horas_voo;intervalo_meses_continuos;intervalo_pousos;intervalos +2;INSP 1A;INSPEÇÃO CHECK 1A;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;A;B;3;;3 D;3;dias;A B 3 3 D;300:00 HORAS DE VOO;8 MESES CONTÍNUOS;;300:00 HORAS DE VOO | 8 MESES CONTÍNUOS +3;INSP 2A;INSPEÇÃO CHECK 2A;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;A;B;10;;4 D;4;dias;A B 10 4 D;600:00 HORAS DE VOO;16 MESES CONTÍNUOS;;600:00 HORAS DE VOO | 16 MESES CONTÍNUOS +4;INSP 3A;INSPEÇÃO CHECK 3A;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;A;B;10;;5 D;5;dias;A B 10 5 D;900:00 HORAS DE VOO;24 MESES CONTÍNUOS;;900:00 HORAS DE VOO | 24 MESES CONTÍNUOS +5;INSP 2Y;INSPEÇÃO CALENDÁRICA DE 2 YEARS;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;B;B;5;;5 D;5;dias;B B 5 5 D;;24 MESES CONTÍNUOS;;24 MESES CONTÍNUOS +6;CHECK 300;CHECK OPERACIONAL DE 300FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;A;O;;;6 H;6;horas;A O 6 H;300:00 HORAS DE VOO;;;300:00 HORAS DE VOO +7;CHECK 400;CHECK OPERACIONAL DE 400FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;A;O;;;6 H;6;horas;A O 6 H;400:00 HORAS DE VOO;;;400:00 HORAS DE VOO +8;1-INSP AOL;INSPEÇÃO AOL 295-019;Última inspeção;Término da Anterior;N;;B;;;1 D;1;dias;B 1 D;;;3800 POUSOS;3800 POUSOS +9;2-INSP AOL;INSPEÇÃO AOL 295-019;Última Inspeção Específica 8 1-INSP AOL;Término da Anterior;N;;B;;;1 D;1;dias;B 1 D;;;2000 POUSOS;2000 POUSOS +10;3-INSP AOL;INSPEÇÃO AOL 295-019;Última Inspeção Específica 9 2-INSP AOL;Término da Anterior;N;;B;;;1 D;1;dias;B 1 D;;;2000 POUSOS;2000 POUSOS +14;INSP 8Y;INSPEÇÃO CALENDÁRICA DE 8 YEARS;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;B;P;15;;20 D;20;dias;B P 15 20 D;;96 MESES CONTÍNUOS;;96 MESES CONTÍNUOS +15;INSP 1C;INSPEÇÃO CHECK 1C;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;C;P;10;;65 D;65;dias;C P 10 65 D;2400:00 HORAS DE VOO;48 MESES CONTÍNUOS;;2400:00 HORAS DE VOO | 48 MESES CONTÍNUOS +16;INSP 2C;INSPEÇÃO GERAL CHECK 2C;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;C;P;60;;10 D;10;dias;C P 60 10 D;4800:00 HORAS DE VOO;96 MESES CONTÍNUOS;;4800:00 HORAS DE VOO | 96 MESES CONTÍNUOS +17;INSP 4Y;INSPEÇÃO CALENDÁRICA DE 4 YEARS;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;B;P;10;;10 D;10;dias;B P 10 10 D;;48 MESES CONTÍNUOS;;48 MESES CONTÍNUOS +18;INSP 100FH BR01;INSPEÇÃO DE 100 FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;;O;;;1 H;1;horas;O 1 H;100:00 HORAS DE VOO;;;100:00 HORAS DE VOO +19;INSP 2400F BR01;INPEÇÃO 2400FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;;O;;;3 H;3;horas;O 3 H;2400:00 HORAS DE VOO;;;2400:00 HORAS DE VOO +20;INSP 3000F BR01;INSPEÇÃO 3000FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;;B;;;1 D;1;dias;B 1 D;3000:00 HORAS DE VOO;;;3000:00 HORAS DE VOO +22;INSP 1000F;INPEÇÃO 1000FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;;B;;;1 D;1;dias;B 1 D;1000:00 HORAS DE VOO;;;1000:00 HORAS DE VOO +23;INSP 50FH;INSPEÇÃO 50 FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;;B;;;1 D;1;dias;B 1 D;50:00 HORAS DE VOO;;;50:00 HORAS DE VOO diff --git a/pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.json b/pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.json index b1ca303..143cbd3 100644 --- a/pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.json +++ b/pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.json @@ -19,6 +19,13 @@ "referencia": "Especial (a contar dela mesma - Tipo D)", "tipo_vencimento": "Término da Anterior", "zera": "N", + "tso": "A", + "letra": "B", + "nivel": "3", + "var_media": "", + "duracao": "3 D", + "duracao_valor": 3, + "duracao_unidade": "dias", "controle_original": "A B 3 3 D", "intervalo_horas_voo": "300:00 HORAS DE VOO", "intervalo_meses_continuos": "8 MESES CONTÍNUOS", @@ -36,6 +43,13 @@ "referencia": "Especial (a contar dela mesma - Tipo D)", "tipo_vencimento": "Término da Anterior", "zera": "N", + "tso": "A", + "letra": "B", + "nivel": "10", + "var_media": "", + "duracao": "4 D", + "duracao_valor": 4, + "duracao_unidade": "dias", "controle_original": "A B 10 4 D", "intervalo_horas_voo": "600:00 HORAS DE VOO", "intervalo_meses_continuos": "16 MESES CONTÍNUOS", @@ -53,6 +67,13 @@ "referencia": "Especial (a contar dela mesma - Tipo D)", "tipo_vencimento": "Término da Anterior", "zera": "N", + "tso": "A", + "letra": "B", + "nivel": "10", + "var_media": "", + "duracao": "5 D", + "duracao_valor": 5, + "duracao_unidade": "dias", "controle_original": "A B 10 5 D", "intervalo_horas_voo": "900:00 HORAS DE VOO", "intervalo_meses_continuos": "24 MESES CONTÍNUOS", @@ -70,6 +91,13 @@ "referencia": "Especial (a contar dela mesma - Tipo D)", "tipo_vencimento": "Término da Anterior", "zera": "N", + "tso": "B", + "letra": "B", + "nivel": "5", + "var_media": "", + "duracao": "5 D", + "duracao_valor": 5, + "duracao_unidade": "dias", "controle_original": "B B 5 5 D", "intervalo_horas_voo": "", "intervalo_meses_continuos": "24 MESES CONTÍNUOS", @@ -86,6 +114,13 @@ "referencia": "Especial (a contar dela mesma - Tipo D)", "tipo_vencimento": "Término da Anterior", "zera": "N", + "tso": "A", + "letra": "O", + "nivel": "", + "var_media": "", + "duracao": "6 H", + "duracao_valor": 6, + "duracao_unidade": "horas", "controle_original": "A O 6 H", "intervalo_horas_voo": "300:00 HORAS DE VOO", "intervalo_meses_continuos": "", @@ -102,6 +137,13 @@ "referencia": "Especial (a contar dela mesma - Tipo D)", "tipo_vencimento": "Término da Anterior", "zera": "N", + "tso": "A", + "letra": "O", + "nivel": "", + "var_media": "", + "duracao": "6 H", + "duracao_valor": 6, + "duracao_unidade": "horas", "controle_original": "A O 6 H", "intervalo_horas_voo": "400:00 HORAS DE VOO", "intervalo_meses_continuos": "", @@ -118,6 +160,13 @@ "referencia": "Última inspeção", "tipo_vencimento": "Término da Anterior", "zera": "N", + "tso": "", + "letra": "B", + "nivel": "", + "var_media": "", + "duracao": "1 D", + "duracao_valor": 1, + "duracao_unidade": "dias", "controle_original": "B 1 D", "intervalo_horas_voo": "", "intervalo_meses_continuos": "", @@ -134,6 +183,13 @@ "referencia": "Última Inspeção Específica 8 1-INSP AOL", "tipo_vencimento": "Término da Anterior", "zera": "N", + "tso": "", + "letra": "B", + "nivel": "", + "var_media": "", + "duracao": "1 D", + "duracao_valor": 1, + "duracao_unidade": "dias", "controle_original": "B 1 D", "intervalo_horas_voo": "", "intervalo_meses_continuos": "", @@ -150,6 +206,13 @@ "referencia": "Última Inspeção Específica 9 2-INSP AOL", "tipo_vencimento": "Término da Anterior", "zera": "N", + "tso": "", + "letra": "B", + "nivel": "", + "var_media": "", + "duracao": "1 D", + "duracao_valor": 1, + "duracao_unidade": "dias", "controle_original": "B 1 D", "intervalo_horas_voo": "", "intervalo_meses_continuos": "", @@ -166,6 +229,13 @@ "referencia": "Especial (a contar dela mesma - Tipo D)", "tipo_vencimento": "Término da Anterior", "zera": "N", + "tso": "B", + "letra": "P", + "nivel": "15", + "var_media": "", + "duracao": "20 D", + "duracao_valor": 20, + "duracao_unidade": "dias", "controle_original": "B P 15 20 D", "intervalo_horas_voo": "", "intervalo_meses_continuos": "96 MESES CONTÍNUOS", @@ -182,6 +252,13 @@ "referencia": "Especial (a contar dela mesma - Tipo D)", "tipo_vencimento": "Término da Anterior", "zera": "N", + "tso": "C", + "letra": "P", + "nivel": "10", + "var_media": "", + "duracao": "65 D", + "duracao_valor": 65, + "duracao_unidade": "dias", "controle_original": "C P 10 65 D", "intervalo_horas_voo": "2400:00 HORAS DE VOO", "intervalo_meses_continuos": "48 MESES CONTÍNUOS", @@ -199,6 +276,13 @@ "referencia": "Especial (a contar dela mesma - Tipo D)", "tipo_vencimento": "Término da Anterior", "zera": "N", + "tso": "C", + "letra": "P", + "nivel": "60", + "var_media": "", + "duracao": "10 D", + "duracao_valor": 10, + "duracao_unidade": "dias", "controle_original": "C P 60 10 D", "intervalo_horas_voo": "4800:00 HORAS DE VOO", "intervalo_meses_continuos": "96 MESES CONTÍNUOS", @@ -216,6 +300,13 @@ "referencia": "Especial (a contar dela mesma - Tipo D)", "tipo_vencimento": "Término da Anterior", "zera": "N", + "tso": "B", + "letra": "P", + "nivel": "10", + "var_media": "", + "duracao": "10 D", + "duracao_valor": 10, + "duracao_unidade": "dias", "controle_original": "B P 10 10 D", "intervalo_horas_voo": "", "intervalo_meses_continuos": "48 MESES CONTÍNUOS", @@ -232,6 +323,13 @@ "referencia": "Especial (a contar dela mesma - Tipo D)", "tipo_vencimento": "Término da Anterior", "zera": "N", + "tso": "", + "letra": "O", + "nivel": "", + "var_media": "", + "duracao": "1 H", + "duracao_valor": 1, + "duracao_unidade": "horas", "controle_original": "O 1 H", "intervalo_horas_voo": "100:00 HORAS DE VOO", "intervalo_meses_continuos": "", @@ -248,6 +346,13 @@ "referencia": "Especial (a contar dela mesma - Tipo D)", "tipo_vencimento": "Término da Anterior", "zera": "N", + "tso": "", + "letra": "O", + "nivel": "", + "var_media": "", + "duracao": "3 H", + "duracao_valor": 3, + "duracao_unidade": "horas", "controle_original": "O 3 H", "intervalo_horas_voo": "2400:00 HORAS DE VOO", "intervalo_meses_continuos": "", @@ -264,6 +369,13 @@ "referencia": "Especial (a contar dela mesma - Tipo D)", "tipo_vencimento": "Término da Anterior", "zera": "N", + "tso": "", + "letra": "B", + "nivel": "", + "var_media": "", + "duracao": "1 D", + "duracao_valor": 1, + "duracao_unidade": "dias", "controle_original": "B 1 D", "intervalo_horas_voo": "3000:00 HORAS DE VOO", "intervalo_meses_continuos": "", @@ -280,6 +392,13 @@ "referencia": "Especial (a contar dela mesma - Tipo D)", "tipo_vencimento": "Término da Anterior", "zera": "N", + "tso": "", + "letra": "B", + "nivel": "", + "var_media": "", + "duracao": "1 D", + "duracao_valor": 1, + "duracao_unidade": "dias", "controle_original": "B 1 D", "intervalo_horas_voo": "1000:00 HORAS DE VOO", "intervalo_meses_continuos": "", @@ -296,6 +415,13 @@ "referencia": "Especial (a contar dela mesma - Tipo D)", "tipo_vencimento": "Término da Anterior", "zera": "N", + "tso": "", + "letra": "B", + "nivel": "", + "var_media": "", + "duracao": "1 D", + "duracao_valor": 1, + "duracao_unidade": "dias", "controle_original": "B 1 D", "intervalo_horas_voo": "50:00 HORAS DE VOO", "intervalo_meses_continuos": "",