Merge branch 'upstream'
Former-commit-id: d7360f4b544e7f4072482ce09aa1e54bd77f52c1
This commit is contained in:
commit
a0cf792d00
@ -1 +1 @@
|
|||||||
2c86edc3ba8bf7e9989f55c6f637d114fd0b28e1
|
f0b6e21374ee9752e37831a38c20776e6960cbcd
|
@ -1 +1 @@
|
|||||||
9aa1dfe93df405cbc803ec4dd5c3423e1e1d191f
|
7d6429e36be0550c81f969db37a1ac1e621f4c30
|
@ -34,7 +34,7 @@ static class Consts
|
|||||||
// Use these assembly version constants to make code more maintainable.
|
// Use these assembly version constants to make code more maintainable.
|
||||||
//
|
//
|
||||||
|
|
||||||
public const string MonoVersion = "5.20.0.212";
|
public const string MonoVersion = "5.20.0.216";
|
||||||
public const string MonoCompany = "Mono development team";
|
public const string MonoCompany = "Mono development team";
|
||||||
public const string MonoProduct = "Mono Common Language Infrastructure";
|
public const string MonoProduct = "Mono Common Language Infrastructure";
|
||||||
public const string MonoCopyright = "(c) Various Mono authors";
|
public const string MonoCopyright = "(c) Various Mono authors";
|
||||||
|
@ -405,15 +405,21 @@ namespace MonoTests.System
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if !MOBILE
|
#if !MOBILE
|
||||||
// Ensure that we can convert a stacktrace to a
|
void NestedStackTraces (int depth)
|
||||||
// telemetry message
|
{
|
||||||
//
|
if (depth == 0)
|
||||||
[Test]
|
throw new ArgumentException ("Depth 0 exception");
|
||||||
[Category("NotOnWindows")]
|
|
||||||
public void StacktraceToState ()
|
try {
|
||||||
|
NestedStackTraces (depth - 1);
|
||||||
|
} catch (Exception exc) {
|
||||||
|
throw new Exception (String.Format ("Depth {0} exception, expect nested", depth), exc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void StacktraceToStateTest (int depth)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
throw new Exception ("#0");
|
NestedStackTraces (depth);
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
var monoType = Type.GetType ("Mono.Runtime", false);
|
var monoType = Type.GetType ("Mono.Runtime", false);
|
||||||
var convert = monoType.GetMethod("ExceptionToState", BindingFlags.NonPublic | BindingFlags.Static);
|
var convert = monoType.GetMethod("ExceptionToState", BindingFlags.NonPublic | BindingFlags.Static);
|
||||||
@ -424,59 +430,41 @@ namespace MonoTests.System
|
|||||||
var portable_hash = output.Item2;
|
var portable_hash = output.Item2;
|
||||||
var unportable_hash = output.Item3;
|
var unportable_hash = output.Item3;
|
||||||
|
|
||||||
|
// To see what we're working with
|
||||||
|
// Console.WriteLine (dump);
|
||||||
|
|
||||||
Assert.IsTrue (portable_hash != 0, "#1");
|
Assert.IsTrue (portable_hash != 0, "#1");
|
||||||
Assert.IsTrue (unportable_hash != 0, "#2");
|
Assert.IsTrue (unportable_hash != 0, "#2");
|
||||||
Assert.IsTrue (dump.Length > 0, "#3");
|
Assert.IsTrue (dump.Length > 0, "#3");
|
||||||
|
|
||||||
// Console.WriteLine (dump);
|
|
||||||
// dump should look something like:
|
|
||||||
// {
|
|
||||||
// "protocol_version" : "0.0.1",
|
|
||||||
// "configuration" : {
|
|
||||||
// "version" : "5.19.0 (managed_telemetry_pipeline/d342c73e320 Wed Aug 15 14:40:40 EDT 2018)",
|
|
||||||
// "tlc" : "normal",
|
|
||||||
// "sigsgev" : "altstack",
|
|
||||||
// "notifications" : "kqueue",
|
|
||||||
// "architecture" : "amd64",
|
|
||||||
// "disabled_features" : "none",
|
|
||||||
// "smallconfig" : "disabled",
|
|
||||||
// "bigarrays" : "disabled",
|
|
||||||
// "softdebug" : "enabled",
|
|
||||||
// "interpreter" : "enabled",
|
|
||||||
// "llvm_support" : "disabled",
|
|
||||||
// "suspend" : "hybrid"
|
|
||||||
// },
|
|
||||||
// "memory" : {
|
|
||||||
// "Resident Size" : "40693760",
|
|
||||||
// "Virtual Size" : "4521312256",
|
|
||||||
// "minor_gc_time" : "216992",
|
|
||||||
// "major_gc_time" : "0",
|
|
||||||
// "minor_gc_count" : "6",
|
|
||||||
// "major_gc_count" : "0",
|
|
||||||
// "major_gc_time_concurrent" : "0"
|
|
||||||
// },
|
|
||||||
// "threads" : [
|
|
||||||
// {
|
|
||||||
// "is_managed" : false,
|
|
||||||
// "managed_thread_ptr" : "0x0",
|
|
||||||
// "thread_info_addr" : "0x0",
|
|
||||||
// "native_thread_id" : "0x0",
|
|
||||||
// "managed_exception_type" : "System.Exception",
|
|
||||||
// "managed_frames" : [
|
|
||||||
// {
|
|
||||||
// "is_managed" : "true",
|
|
||||||
// "guid" : "43A03618-E657-44B0-B9FA-F63314A3C1B2",
|
|
||||||
// "token" : "0x60008da",
|
|
||||||
// "native_offset" : "0xb2",
|
|
||||||
// "il_offset" : "0x00000"
|
|
||||||
// }
|
|
||||||
// ]
|
|
||||||
// }
|
|
||||||
// ]
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Ensure that we can convert a stacktrace to a
|
||||||
|
// telemetry message
|
||||||
|
//
|
||||||
|
[Test]
|
||||||
|
[Category("NotOnWindows")]
|
||||||
|
public void StacktraceToStateBase ()
|
||||||
|
{
|
||||||
|
StacktraceToStateTest (0);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
[Category("NotOnWindows")]
|
||||||
|
public void StacktraceToStateDeeper ()
|
||||||
|
{
|
||||||
|
StacktraceToStateTest (2);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
[Category("NotOnWindows")]
|
||||||
|
public void StacktraceToStateOverflow ()
|
||||||
|
{
|
||||||
|
// We set a limit on 15 nested exceptions. Lets check that we're valid
|
||||||
|
// when exceeding that limit.
|
||||||
|
StacktraceToStateTest (20);
|
||||||
|
}
|
||||||
|
|
||||||
void DumpSingle ()
|
void DumpSingle ()
|
||||||
{
|
{
|
||||||
var monoType = Type.GetType ("Mono.Runtime", false);
|
var monoType = Type.GetType ("Mono.Runtime", false);
|
||||||
|
@ -1 +1 @@
|
|||||||
d03e66988382cc596efa6e6cd4e15b38dd662e2f
|
bf5efc5447e6f4a911a6ec54f7cf8ad9235fe762
|
@ -1 +1 @@
|
|||||||
1d23d17a634de9fdbb0dc9227c48f23b56a43fca
|
bb36f1a11545bf4a03eb3573bdea38e58f46cccc
|
@ -1 +1 @@
|
|||||||
f23f0206760d2a78d78ca1b09b56c8260a60e065
|
71b08e4112901e636d98620ac91654b734f56293
|
Binary file not shown.
@ -1 +1 @@
|
|||||||
4627cbb776b126cba78aac2713b8bb3839cb5404
|
d37cf271f832133dd652fc851bd0f5d7b9169079
|
@ -1 +1 @@
|
|||||||
740601bc775197bb507bcabb8c776613ac0864a8
|
ed7cb36f1271f2b721d6d6a0d794b726adb4cd5b
|
@ -1 +1 @@
|
|||||||
f86cd4ec65cf6fae7248f3f5e0bc9b4c6561dffc
|
8000f304b65bd645bc78ec0627662a8cd92b8f36
|
@ -1 +1 @@
|
|||||||
67f2dde2aeb02fb03415a58067ae5d11d45f74ec
|
2eaa92b92d5c3487575d87df14a4ed6851924590
|
@ -1 +1 @@
|
|||||||
d03e66988382cc596efa6e6cd4e15b38dd662e2f
|
bf5efc5447e6f4a911a6ec54f7cf8ad9235fe762
|
@ -1 +1 @@
|
|||||||
1d23d17a634de9fdbb0dc9227c48f23b56a43fca
|
bb36f1a11545bf4a03eb3573bdea38e58f46cccc
|
@ -1 +1 @@
|
|||||||
f23f0206760d2a78d78ca1b09b56c8260a60e065
|
71b08e4112901e636d98620ac91654b734f56293
|
Binary file not shown.
@ -1 +1 @@
|
|||||||
4627cbb776b126cba78aac2713b8bb3839cb5404
|
d37cf271f832133dd652fc851bd0f5d7b9169079
|
@ -1 +1 @@
|
|||||||
740601bc775197bb507bcabb8c776613ac0864a8
|
ed7cb36f1271f2b721d6d6a0d794b726adb4cd5b
|
@ -1 +1 @@
|
|||||||
f86cd4ec65cf6fae7248f3f5e0bc9b4c6561dffc
|
8000f304b65bd645bc78ec0627662a8cd92b8f36
|
@ -1 +1 @@
|
|||||||
67f2dde2aeb02fb03415a58067ae5d11d45f74ec
|
2eaa92b92d5c3487575d87df14a4ed6851924590
|
@ -1 +1 @@
|
|||||||
d03e66988382cc596efa6e6cd4e15b38dd662e2f
|
bf5efc5447e6f4a911a6ec54f7cf8ad9235fe762
|
@ -1 +1 @@
|
|||||||
1d23d17a634de9fdbb0dc9227c48f23b56a43fca
|
bb36f1a11545bf4a03eb3573bdea38e58f46cccc
|
@ -1 +1 @@
|
|||||||
f23f0206760d2a78d78ca1b09b56c8260a60e065
|
71b08e4112901e636d98620ac91654b734f56293
|
Binary file not shown.
@ -1 +1 @@
|
|||||||
4627cbb776b126cba78aac2713b8bb3839cb5404
|
d37cf271f832133dd652fc851bd0f5d7b9169079
|
@ -1 +1 @@
|
|||||||
740601bc775197bb507bcabb8c776613ac0864a8
|
ed7cb36f1271f2b721d6d6a0d794b726adb4cd5b
|
@ -1 +1 @@
|
|||||||
f86cd4ec65cf6fae7248f3f5e0bc9b4c6561dffc
|
8000f304b65bd645bc78ec0627662a8cd92b8f36
|
@ -1 +1 @@
|
|||||||
67f2dde2aeb02fb03415a58067ae5d11d45f74ec
|
2eaa92b92d5c3487575d87df14a4ed6851924590
|
@ -1 +1 @@
|
|||||||
d03e66988382cc596efa6e6cd4e15b38dd662e2f
|
bf5efc5447e6f4a911a6ec54f7cf8ad9235fe762
|
@ -1 +1 @@
|
|||||||
1d23d17a634de9fdbb0dc9227c48f23b56a43fca
|
bb36f1a11545bf4a03eb3573bdea38e58f46cccc
|
@ -1 +1 @@
|
|||||||
f23f0206760d2a78d78ca1b09b56c8260a60e065
|
71b08e4112901e636d98620ac91654b734f56293
|
Binary file not shown.
@ -1 +1 @@
|
|||||||
4627cbb776b126cba78aac2713b8bb3839cb5404
|
d37cf271f832133dd652fc851bd0f5d7b9169079
|
@ -1 +1 @@
|
|||||||
740601bc775197bb507bcabb8c776613ac0864a8
|
ed7cb36f1271f2b721d6d6a0d794b726adb4cd5b
|
@ -1 +1 @@
|
|||||||
f86cd4ec65cf6fae7248f3f5e0bc9b4c6561dffc
|
8000f304b65bd645bc78ec0627662a8cd92b8f36
|
@ -1 +1 @@
|
|||||||
67f2dde2aeb02fb03415a58067ae5d11d45f74ec
|
2eaa92b92d5c3487575d87df14a4ed6851924590
|
@ -415,6 +415,13 @@ typedef struct {
|
|||||||
MonoArray *out_args;
|
MonoArray *out_args;
|
||||||
} MonoAsyncCall;
|
} MonoAsyncCall;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
MonoObject obj;
|
||||||
|
MonoArray *frames;
|
||||||
|
MonoArray *captured_traces;
|
||||||
|
MonoBoolean debug_info;
|
||||||
|
} MonoStackTrace;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
MonoObject obj;
|
MonoObject obj;
|
||||||
gint32 il_offset;
|
gint32 il_offset;
|
||||||
|
@ -556,6 +556,7 @@ mono_set_pending_exception_handle (MonoExceptionHandle exc);
|
|||||||
#define MONO_MAX_THREAD_NAME_LEN 140
|
#define MONO_MAX_THREAD_NAME_LEN 140
|
||||||
#define MONO_MAX_SUMMARY_THREADS 32
|
#define MONO_MAX_SUMMARY_THREADS 32
|
||||||
#define MONO_MAX_SUMMARY_FRAMES 80
|
#define MONO_MAX_SUMMARY_FRAMES 80
|
||||||
|
#define MONO_MAX_SUMMARY_EXCEPTIONS 15
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
gboolean is_managed;
|
gboolean is_managed;
|
||||||
@ -584,6 +585,13 @@ typedef struct {
|
|||||||
} unmanaged_data;
|
} unmanaged_data;
|
||||||
} MonoFrameSummary;
|
} MonoFrameSummary;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
MonoClass *managed_exc_type;
|
||||||
|
|
||||||
|
int num_managed_frames;
|
||||||
|
MonoFrameSummary managed_frames [MONO_MAX_SUMMARY_FRAMES];
|
||||||
|
} MonoExcSummary;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
guint64 offset_free_hash;
|
guint64 offset_free_hash;
|
||||||
guint64 offset_rich_hash;
|
guint64 offset_rich_hash;
|
||||||
@ -618,12 +626,13 @@ typedef struct {
|
|||||||
int num_unmanaged_frames;
|
int num_unmanaged_frames;
|
||||||
MonoFrameSummary unmanaged_frames [MONO_MAX_SUMMARY_FRAMES];
|
MonoFrameSummary unmanaged_frames [MONO_MAX_SUMMARY_FRAMES];
|
||||||
|
|
||||||
|
int num_exceptions;
|
||||||
|
MonoExcSummary exceptions [MONO_MAX_SUMMARY_EXCEPTIONS];
|
||||||
|
|
||||||
MonoStackHash hashes;
|
MonoStackHash hashes;
|
||||||
|
|
||||||
MonoContext *ctx;
|
MonoContext *ctx;
|
||||||
MonoContext ctx_mem;
|
MonoContext ctx_mem;
|
||||||
|
|
||||||
MonoClass *managed_exc_type;
|
|
||||||
} MonoThreadSummary;
|
} MonoThreadSummary;
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
|
@ -1 +1 @@
|
|||||||
18d8790cce1bc5af5f396123ecf2af224b656d7f
|
340ce835d465cf9e34de291cdbaed326bb821e69
|
@ -1 +1 @@
|
|||||||
5d2cdc457b989d21bce22f039a63e9a0b790994f
|
82cfd50fe6fe4d591cf94156aba197f631088b94
|
@ -1 +1 @@
|
|||||||
#define FULL_VERSION "explicit/aa0b580"
|
#define FULL_VERSION "explicit/4c3f26a"
|
||||||
|
@ -545,14 +545,11 @@ mono_native_state_add_frames (MonoStateWriter *writer, int num_frames, MonoFrame
|
|||||||
|
|
||||||
mono_state_writer_printf(writer, "[\n");
|
mono_state_writer_printf(writer, "[\n");
|
||||||
|
|
||||||
// Where you are: everything works but
|
for (int i = 0; i < num_frames; ++i) {
|
||||||
// the add_frame method
|
if (i > 0)
|
||||||
|
mono_state_writer_printf(writer, ",\n");
|
||||||
mono_native_state_add_frame (writer, &frames [0]);
|
mono_native_state_add_frame (writer, &frames [i]);
|
||||||
for (int i = 1; i < num_frames; ++i) {
|
}
|
||||||
mono_state_writer_printf(writer, ",\n");
|
|
||||||
mono_native_state_add_frame (writer, &frames [i]);
|
|
||||||
}
|
|
||||||
mono_state_writer_printf(writer, "\n");
|
mono_state_writer_printf(writer, "\n");
|
||||||
|
|
||||||
mono_state_writer_indent (writer);
|
mono_state_writer_indent (writer);
|
||||||
@ -560,6 +557,45 @@ mono_native_state_add_frames (MonoStateWriter *writer, int num_frames, MonoFrame
|
|||||||
mono_state_writer_printf(writer, "]");
|
mono_state_writer_printf(writer, "]");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
mono_native_state_add_managed_exc (MonoStateWriter *writer, MonoExcSummary *exc)
|
||||||
|
{
|
||||||
|
mono_state_writer_indent (writer);
|
||||||
|
mono_state_writer_printf(writer, "{\n");
|
||||||
|
writer->indent++;
|
||||||
|
|
||||||
|
assert_has_space (writer);
|
||||||
|
mono_state_writer_indent (writer);
|
||||||
|
mono_state_writer_object_key (writer, "type");
|
||||||
|
mono_state_writer_printf(writer, "\"%s.%s\",\n", m_class_get_name_space (exc->managed_exc_type), m_class_get_name (exc->managed_exc_type));
|
||||||
|
|
||||||
|
mono_native_state_add_frames (writer, exc->num_managed_frames, exc->managed_frames, "managed_frames");
|
||||||
|
|
||||||
|
mono_state_writer_indent (writer);
|
||||||
|
writer->indent--;
|
||||||
|
mono_state_writer_printf(writer, "}\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
mono_native_state_add_managed_excs (MonoStateWriter *writer, int num_excs, MonoExcSummary *excs)
|
||||||
|
{
|
||||||
|
mono_state_writer_indent (writer);
|
||||||
|
mono_state_writer_object_key (writer, "exceptions");
|
||||||
|
|
||||||
|
mono_state_writer_printf(writer, "[\n");
|
||||||
|
|
||||||
|
for (int i = 0; i < num_excs; ++i) {
|
||||||
|
if (i > 0)
|
||||||
|
mono_state_writer_printf(writer, ",\n");
|
||||||
|
mono_native_state_add_managed_exc (writer, &excs [i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
mono_state_writer_indent (writer);
|
||||||
|
writer->indent--;
|
||||||
|
mono_state_writer_printf(writer, "]");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
mono_native_state_add_thread (MonoStateWriter *writer, MonoThreadSummary *thread, MonoContext *ctx, gboolean first_thread, gboolean crashing_thread)
|
mono_native_state_add_thread (MonoStateWriter *writer, MonoThreadSummary *thread, MonoContext *ctx, gboolean first_thread, gboolean crashing_thread)
|
||||||
{
|
{
|
||||||
@ -619,19 +655,16 @@ mono_native_state_add_thread (MonoStateWriter *writer, MonoThreadSummary *thread
|
|||||||
mono_state_writer_printf(writer, "\"%s\"", thread->name);
|
mono_state_writer_printf(writer, "\"%s\"", thread->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (thread->managed_exc_type) {
|
|
||||||
mono_state_writer_printf(writer, ",\n");
|
|
||||||
assert_has_space (writer);
|
|
||||||
mono_state_writer_indent (writer);
|
|
||||||
mono_state_writer_object_key (writer, "managed_exception_type");
|
|
||||||
mono_state_writer_printf(writer, "\"%s.%s\"", m_class_get_name_space (thread->managed_exc_type), m_class_get_name (thread->managed_exc_type));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ctx) {
|
if (ctx) {
|
||||||
mono_state_writer_printf(writer, ",\n");
|
mono_state_writer_printf(writer, ",\n");
|
||||||
mono_native_state_add_ctx (writer, ctx);
|
mono_native_state_add_ctx (writer, ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (thread->num_exceptions > 0) {
|
||||||
|
mono_state_writer_printf(writer, ",\n");
|
||||||
|
mono_native_state_add_managed_excs (writer, thread->num_exceptions, thread->exceptions);
|
||||||
|
}
|
||||||
|
|
||||||
if (thread->num_managed_frames > 0) {
|
if (thread->num_managed_frames > 0) {
|
||||||
mono_state_writer_printf(writer, ",\n");
|
mono_state_writer_printf(writer, ",\n");
|
||||||
mono_native_state_add_frames (writer, thread->num_managed_frames, thread->managed_frames, "managed_frames");
|
mono_native_state_add_frames (writer, thread->num_managed_frames, thread->managed_frames, "managed_frames");
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
#include <mono/metadata/threads-types.h>
|
#include <mono/metadata/threads-types.h>
|
||||||
#include <mono/utils/json.h>
|
#include <mono/utils/json.h>
|
||||||
|
|
||||||
#define MONO_NATIVE_STATE_PROTOCOL_VERSION "0.0.2"
|
#define MONO_NATIVE_STATE_PROTOCOL_VERSION "0.0.3"
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
MonoSummaryNone,
|
MonoSummaryNone,
|
||||||
|
BIN
po/mcs/de.gmo
BIN
po/mcs/de.gmo
Binary file not shown.
@ -1 +1 @@
|
|||||||
809a89236f060daa5b3d86a47711dad28241a998
|
8527d85061d77a02a5cc5f2bf79e1792eb924620
|
BIN
po/mcs/es.gmo
BIN
po/mcs/es.gmo
Binary file not shown.
@ -1 +1 @@
|
|||||||
e11216564c47fb88c2196f3c7181e53fec04cca8
|
4cece26a586a9ca67f8054f740e6079db1bec128
|
BIN
po/mcs/ja.gmo
BIN
po/mcs/ja.gmo
Binary file not shown.
@ -1 +1 @@
|
|||||||
c03a63745725aeb6625f978f49ab364a21799c0c
|
bb20b832aaa89eb33068c0a8d05d8f70febc4998
|
@ -6,9 +6,9 @@
|
|||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: mono 5.20.0.212\n"
|
"Project-Id-Version: mono 5.20.0.216\n"
|
||||||
"Report-Msgid-Bugs-To: http://www.mono-project.com/Bugs\n"
|
"Report-Msgid-Bugs-To: http://www.mono-project.com/Bugs\n"
|
||||||
"POT-Creation-Date: 2019-02-15 08:08+0000\n"
|
"POT-Creation-Date: 2019-02-16 08:06+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
BIN
po/mcs/pt_BR.gmo
BIN
po/mcs/pt_BR.gmo
Binary file not shown.
@ -1 +1 @@
|
|||||||
40da4ad61e5c677486b69139e0c5a64eee7f5aa6
|
8e5540dd0371f910cac2d287dd1784cde21fea26
|
Loading…
x
Reference in New Issue
Block a user