summaryrefslogtreecommitdiffstats
path: root/vcl/workben
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--vcl/workben/602fuzzer.cxx57
-rw-r--r--vcl/workben/602fuzzer.options2
-rw-r--r--vcl/workben/bmpfuzzer.cxx56
-rw-r--r--vcl/workben/bmpfuzzer.options2
-rw-r--r--vcl/workben/cgmfuzzer.cxx129
-rw-r--r--vcl/workben/cgmfuzzer.options4
-rw-r--r--vcl/workben/commonfuzzer.hxx143
-rw-r--r--vcl/workben/diffuzzer.cxx86
-rw-r--r--vcl/workben/diffuzzer.options4
-rw-r--r--vcl/workben/docxfuzzer.cxx39
-rw-r--r--vcl/workben/docxfuzzer.options4
-rw-r--r--vcl/workben/dxffuzzer.cxx67
-rw-r--r--vcl/workben/dxffuzzer.options2
-rw-r--r--vcl/workben/epsfuzzer.cxx67
-rw-r--r--vcl/workben/epsfuzzer.options2
-rw-r--r--vcl/workben/fftester.cxx692
-rw-r--r--vcl/workben/fodpfuzzer.cxx39
-rw-r--r--vcl/workben/fodpfuzzer.options5
-rw-r--r--vcl/workben/fodsfuzzer.cxx34
-rw-r--r--vcl/workben/fodsfuzzer.options5
-rw-r--r--vcl/workben/fodtfuzzer.cxx39
-rw-r--r--vcl/workben/fodtfuzzer.options5
-rw-r--r--vcl/workben/giffuzzer.cxx56
-rw-r--r--vcl/workben/giffuzzer.options3
-rw-r--r--vcl/workben/htmlfuzzer.cxx33
-rw-r--r--vcl/workben/htmlfuzzer.options3
-rw-r--r--vcl/workben/hwpfuzzer.cxx57
-rw-r--r--vcl/workben/hwpfuzzer.options2
-rw-r--r--vcl/workben/icontest.cxx219
-rw-r--r--vcl/workben/jpgfuzzer.cxx56
-rw-r--r--vcl/workben/jpgfuzzer.options3
-rw-r--r--vcl/workben/localestub/localedata_en_AU.cxx1263
-rw-r--r--vcl/workben/localestub/localedata_en_BW.cxx140
-rw-r--r--vcl/workben/localestub/localedata_en_BZ.cxx225
-rw-r--r--vcl/workben/localestub/localedata_en_CA.cxx929
-rw-r--r--vcl/workben/localestub/localedata_en_GB.cxx912
-rw-r--r--vcl/workben/localestub/localedata_en_GH.cxx1526
-rw-r--r--vcl/workben/localestub/localedata_en_GM.cxx140
-rw-r--r--vcl/workben/localestub/localedata_en_IE.cxx259
-rw-r--r--vcl/workben/localestub/localedata_en_IN.cxx200
-rw-r--r--vcl/workben/localestub/localedata_en_JM.cxx1263
-rw-r--r--vcl/workben/localestub/localedata_en_LK.cxx144
-rw-r--r--vcl/workben/localestub/localedata_en_MW.cxx140
-rw-r--r--vcl/workben/localestub/localedata_en_MY.cxx118
-rw-r--r--vcl/workben/localestub/localedata_en_NA.cxx1280
-rw-r--r--vcl/workben/localestub/localedata_en_NG.cxx142
-rw-r--r--vcl/workben/localestub/localedata_en_NZ.cxx563
-rw-r--r--vcl/workben/localestub/localedata_en_PH.cxx140
-rw-r--r--vcl/workben/localestub/localedata_en_TT.cxx563
-rw-r--r--vcl/workben/localestub/localedata_en_US.cxx2609
-rw-r--r--vcl/workben/localestub/localedata_en_ZA.cxx1263
-rw-r--r--vcl/workben/localestub/localedata_en_ZM.cxx142
-rw-r--r--vcl/workben/localestub/localedata_en_ZW.cxx563
-rw-r--r--vcl/workben/localestub/localestub.cxx39
-rw-r--r--vcl/workben/lwpfuzzer.cxx57
-rw-r--r--vcl/workben/lwpfuzzer.options2
-rw-r--r--vcl/workben/metfuzzer.cxx67
-rw-r--r--vcl/workben/metfuzzer.options4
-rw-r--r--vcl/workben/mmlfuzzer.cxx29
-rw-r--r--vcl/workben/mmlfuzzer.options5
-rw-r--r--vcl/workben/mtfdemo.cxx165
-rw-r--r--vcl/workben/mtpfuzzer.cxx42
-rw-r--r--vcl/workben/mtpfuzzer.options2
-rw-r--r--vcl/workben/olefuzzer.cxx65
-rw-r--r--vcl/workben/olefuzzer.options2
-rw-r--r--vcl/workben/pcdfuzzer.cxx58
-rw-r--r--vcl/workben/pcdfuzzer.options2
-rw-r--r--vcl/workben/pctfuzzer.cxx58
-rw-r--r--vcl/workben/pctfuzzer.options2
-rw-r--r--vcl/workben/pcxfuzzer.cxx58
-rw-r--r--vcl/workben/pcxfuzzer.options2
-rw-r--r--vcl/workben/pngfuzzer.cxx56
-rw-r--r--vcl/workben/pngfuzzer.options3
-rw-r--r--vcl/workben/ppmfuzzer.cxx58
-rw-r--r--vcl/workben/ppmfuzzer.options2
-rw-r--r--vcl/workben/pptfuzzer.cxx135
-rw-r--r--vcl/workben/pptfuzzer.options2
-rw-r--r--vcl/workben/pptxfuzzer.cxx33
-rw-r--r--vcl/workben/pptxfuzzer.options4
-rw-r--r--vcl/workben/psdfuzzer.cxx58
-rw-r--r--vcl/workben/psdfuzzer.options2
-rw-r--r--vcl/workben/qpwfuzzer.cxx89
-rw-r--r--vcl/workben/qpwfuzzer.options4
-rw-r--r--vcl/workben/rasfuzzer.cxx58
-rw-r--r--vcl/workben/rasfuzzer.options2
-rw-r--r--vcl/workben/rtffuzzer.cxx90
-rw-r--r--vcl/workben/rtffuzzer.options4
-rw-r--r--vcl/workben/scrtffuzzer.cxx83
-rw-r--r--vcl/workben/scrtffuzzer.options4
-rw-r--r--vcl/workben/sftfuzzer.cxx44
-rw-r--r--vcl/workben/sftfuzzer.options2
-rw-r--r--vcl/workben/slkfuzzer.cxx89
-rw-r--r--vcl/workben/slkfuzzer.options4
-rw-r--r--vcl/workben/svdem.cxx98
-rw-r--r--vcl/workben/svmfuzzer.cxx56
-rw-r--r--vcl/workben/svmfuzzer.options2
-rw-r--r--vcl/workben/svpclient.cxx283
-rw-r--r--vcl/workben/svptest.cxx328
-rw-r--r--vcl/workben/tgafuzzer.cxx58
-rw-r--r--vcl/workben/tgafuzzer.options2
-rw-r--r--vcl/workben/tiffuzzer.cxx64
-rw-r--r--vcl/workben/tiffuzzer.options3
-rw-r--r--vcl/workben/vcldemo.cxx2450
-rw-r--r--vcl/workben/wksfuzzer.cxx53
-rw-r--r--vcl/workben/wksfuzzer.options2
-rw-r--r--vcl/workben/wmffuzzer.cxx68
-rw-r--r--vcl/workben/wmffuzzer.options2
-rw-r--r--vcl/workben/ww2fuzzer.cxx104
-rw-r--r--vcl/workben/ww2fuzzer.options4
-rw-r--r--vcl/workben/ww6fuzzer.cxx106
-rw-r--r--vcl/workben/ww6fuzzer.options4
-rw-r--r--vcl/workben/ww8fuzzer.cxx106
-rw-r--r--vcl/workben/ww8fuzzer.options4
-rw-r--r--vcl/workben/xbmfuzzer.cxx56
-rw-r--r--vcl/workben/xbmfuzzer.options2
-rw-r--r--vcl/workben/xlsfuzzer.cxx53
-rw-r--r--vcl/workben/xlsfuzzer.options4
-rw-r--r--vcl/workben/xlsxfuzzer.cxx31
-rw-r--r--vcl/workben/xlsxfuzzer.options4
-rw-r--r--vcl/workben/xpmfuzzer.cxx56
-rw-r--r--vcl/workben/xpmfuzzer.options2
121 files changed, 21929 insertions, 0 deletions
diff --git a/vcl/workben/602fuzzer.cxx b/vcl/workben/602fuzzer.cxx
new file mode 100644
index 000000000..6fb96a4c7
--- /dev/null
+++ b/vcl/workben/602fuzzer.cxx
@@ -0,0 +1,57 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" bool TestImport602(SvStream &rStream);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImport602(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/602fuzzer.options b/vcl/workben/602fuzzer.options
new file mode 100644
index 000000000..678d526b1
--- /dev/null
+++ b/vcl/workben/602fuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 65536
diff --git a/vcl/workben/bmpfuzzer.cxx b/vcl/workben/bmpfuzzer.cxx
new file mode 100644
index 000000000..8e22aabaf
--- /dev/null
+++ b/vcl/workben/bmpfuzzer.cxx
@@ -0,0 +1,56 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/dibtools.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ Bitmap aTarget;
+ (void)ReadDIB(aTarget, aStream, true);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/bmpfuzzer.options b/vcl/workben/bmpfuzzer.options
new file mode 100644
index 000000000..678d526b1
--- /dev/null
+++ b/vcl/workben/bmpfuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 65536
diff --git a/vcl/workben/cgmfuzzer.cxx b/vcl/workben/cgmfuzzer.cxx
new file mode 100644
index 000000000..252d538bd
--- /dev/null
+++ b/vcl/workben/cgmfuzzer.cxx
@@ -0,0 +1,129 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+extern "C" {
+void * emfio_component_getFactory( const char* , void* , void* );
+void * sd_component_getFactory( const char* , void* , void* );
+void * i18npool_component_getFactory( const char* , void* , void* );
+void * ucb_component_getFactory( const char* , void* , void* );
+void * lng_component_getFactory( const char* , void* , void* );
+
+void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * );
+void * com_sun_star_comp_framework_Desktop_get_implementation( void *, void * );
+void * com_sun_star_i18n_CharacterClassification_Unicode_get_implementation( void *, void * );
+void * com_sun_star_i18n_CharacterClassification_get_implementation( void *, void * );
+void * com_sun_star_i18n_NativeNumberSupplier_get_implementation( void *, void * );
+void * com_sun_star_i18n_NumberFormatCodeMapper_get_implementation( void *, void * );
+void * com_sun_star_i18n_Transliteration_get_implementation( void *, void * );
+void * com_sun_star_drawing_EnhancedCustomShapeEngine_get_implementation( void *, void * );
+void * com_sun_star_drawing_SvxShapeCollection_get_implementation( void *, void * );
+void * SfxDocumentMetaData_get_implementation( void *, void * );
+void * unoxml_component_getFactory( const char* , void* , void* );
+void * com_sun_star_animations_AnimateColor_get_implementation( void *, void * );
+void * com_sun_star_animations_AnimateMotion_get_implementation( void *, void * );
+void * com_sun_star_animations_AnimateSet_get_implementation( void *, void * );
+void * com_sun_star_animations_AnimateTransform_get_implementation( void *, void * );
+void * com_sun_star_animations_Animate_get_implementation( void *, void * );
+void * com_sun_star_animations_Audio_get_implementation( void *, void * );
+void * com_sun_star_animations_Command_get_implementation( void *, void * );
+void * com_sun_star_animations_IterateContainer_get_implementation( void *, void * );
+void * com_sun_star_animations_ParallelTimeContainer_get_implementation( void *, void * );
+void * com_sun_star_animations_SequenceTimeContainer_get_implementation( void *, void * );
+void * com_sun_star_animations_TransitionFilter_get_implementation( void *, void * );
+void * com_sun_star_comp_comphelper_OPropertyBag( void *, void * );
+void * com_sun_star_comp_uui_UUIInteractionHandler_get_implementation( void *, void * );
+}
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { "libemfiolo.a", emfio_component_getFactory },
+ { "libsdlo.a", sd_component_getFactory },
+ { "libunoxmllo.a", unoxml_component_getFactory },
+ { "libi18npoollo.a", i18npool_component_getFactory },
+ { "libucb1.a", ucb_component_getFactory },
+ { "liblnglo.a", lng_component_getFactory },
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation },
+ { "com_sun_star_comp_framework_Desktop_get_implementation", com_sun_star_comp_framework_Desktop_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation", com_sun_star_i18n_CharacterClassification_Unicode_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_get_implementation", com_sun_star_i18n_CharacterClassification_get_implementation },
+ { "com_sun_star_i18n_NativeNumberSupplier_get_implementation", com_sun_star_i18n_NativeNumberSupplier_get_implementation },
+ { "com_sun_star_i18n_NumberFormatCodeMapper_get_implementation", com_sun_star_i18n_NumberFormatCodeMapper_get_implementation },
+ { "com_sun_star_i18n_Transliteration_get_implementation", com_sun_star_i18n_Transliteration_get_implementation },
+ { "com_sun_star_drawing_EnhancedCustomShapeEngine_get_implementation", com_sun_star_drawing_EnhancedCustomShapeEngine_get_implementation },
+ { "com_sun_star_drawing_SvxShapeCollection_get_implementation", com_sun_star_drawing_SvxShapeCollection_get_implementation },
+ { "SfxDocumentMetaData_get_implementation", SfxDocumentMetaData_get_implementation },
+ { "com_sun_star_animations_AnimateColor_get_implementation", com_sun_star_animations_AnimateColor_get_implementation },
+ { "com_sun_star_animations_AnimateMotion_get_implementation", com_sun_star_animations_AnimateMotion_get_implementation },
+ { "com_sun_star_animations_AnimateSet_get_implementation", com_sun_star_animations_AnimateSet_get_implementation },
+ { "com_sun_star_animations_AnimateTransform_get_implementation", com_sun_star_animations_AnimateTransform_get_implementation },
+ { "com_sun_star_animations_Animate_get_implementation", com_sun_star_animations_Animate_get_implementation },
+ { "com_sun_star_animations_Audio_get_implementation", com_sun_star_animations_Audio_get_implementation },
+ { "com_sun_star_animations_Command_get_implementation", com_sun_star_animations_Command_get_implementation },
+ { "com_sun_star_animations_IterateContainer_get_implementation", com_sun_star_animations_IterateContainer_get_implementation },
+ { "com_sun_star_animations_ParallelTimeContainer_get_implementation", com_sun_star_animations_ParallelTimeContainer_get_implementation },
+ { "com_sun_star_animations_SequenceTimeContainer_get_implementation", com_sun_star_animations_SequenceTimeContainer_get_implementation },
+ { "com_sun_star_animations_TransitionFilter_get_implementation", com_sun_star_animations_TransitionFilter_get_implementation },
+ { "com_sun_star_comp_comphelper_OPropertyBag", com_sun_star_comp_comphelper_OPropertyBag },
+ { "com_sun_star_comp_uui_UUIInteractionHandler_get_implementation", com_sun_star_comp_uui_UUIInteractionHandler_get_implementation },
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" void* SdCreateDialogFactory()
+{
+ return nullptr;
+}
+
+extern "C" bool TestImportCGM(SvStream &rStream);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportCGM(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/cgmfuzzer.options b/vcl/workben/cgmfuzzer.options
new file mode 100644
index 000000000..d851ad58c
--- /dev/null
+++ b/vcl/workben/cgmfuzzer.options
@@ -0,0 +1,4 @@
+[libfuzzer]
+max_len = 65536
+[env]
+AFL_DRIVER_DONT_DEFER=1
diff --git a/vcl/workben/commonfuzzer.hxx b/vcl/workben/commonfuzzer.hxx
new file mode 100644
index 000000000..d6c8d5cae
--- /dev/null
+++ b/vcl/workben/commonfuzzer.hxx
@@ -0,0 +1,143 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <sal/main.h>
+#include <tools/extendapplicationenvironment.hxx>
+
+#include <cppuhelper/bootstrap.hxx>
+#include <comphelper/processfactory.hxx>
+
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
+#include <unotools/configmgr.hxx>
+#include <rtl/bootstrap.hxx>
+#include <rtl/strbuf.hxx>
+#include <osl/file.hxx>
+#include <osl/process.h>
+#include <vcl/graph.hxx>
+#include <vcl/print.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/wmf.hxx>
+#include <unistd.h>
+#include <stdlib.h>
+#include "headless/svpgdi.hxx"
+#include "unx/fontmanager.hxx"
+#include "unx/glyphcache.hxx"
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace cppu;
+
+namespace
+{
+ OUString getExecutableDir()
+ {
+ OUString uri;
+ if (osl_getExecutableFile(&uri.pData) != osl_Process_E_None) {
+ abort();
+ }
+ sal_Int32 lastDirSeperatorPos = uri.lastIndexOf('/');
+ if (lastDirSeperatorPos >= 0) {
+ uri = uri.copy(0, lastDirSeperatorPos + 1);
+ }
+ return uri;
+ }
+
+ OUString getExecutableName()
+ {
+ OUString uri;
+ if (osl_getExecutableFile(&uri.pData) != osl_Process_E_None) {
+ abort();
+ }
+ return uri.copy(uri.lastIndexOf('/') + 1);
+ }
+
+ void setFontConfigConf(const OUString &execdir)
+ {
+ osl::File aFontConfig("file:///tmp/wmffuzzerfonts.conf");
+ if (aFontConfig.open(osl_File_OpenFlag_Create | osl_File_OpenFlag_Write) == osl::File::E_None)
+ {
+ OUString sExecDir;
+ osl::FileBase::getSystemPathFromFileURL(execdir, sExecDir);
+
+ OStringBuffer aBuffer("<?xml version=\"1.0\"?>\n<fontconfig><dir>");
+ aBuffer.append(OUStringToOString(sExecDir + getExecutableName() + ".fonts", osl_getThreadTextEncoding()));
+ aBuffer.append("</dir><cachedir>/tmp/cache/fontconfig</cachedir></fontconfig>");
+ OString aConf = aBuffer.makeStringAndClear();
+ sal_uInt64 aBytesWritten;
+ aFontConfig.write(aConf.getStr(), aConf.getLength(), aBytesWritten);
+ assert(aBytesWritten == aConf.getLength());
+ }
+ setenv("FONTCONFIG_FILE", "/tmp/wmffuzzerfonts.conf", 0);
+ }
+}
+
+extern "C"
+{
+ __attribute__((weak)) void __lsan_disable();
+ __attribute__((weak)) void __lsan_enable();
+}
+
+void CommonInitialize(int *argc, char ***argv)
+{
+ setenv("SAL_USE_VCLPLUGIN", "svp", 1);
+ setenv("JPEGMEM", "768M", 1);
+ setenv("SC_MAX_MATRIX_ELEMENTS", "60000000", 1);
+ setenv("SC_NO_THREADED_CALCULATION", "1", 1);
+ setenv("SAL_WMF_COMPLEXCLIP_VIA_REGION", "1", 1);
+ setenv("SAL_DISABLE_PRINTERLIST", "1", 1);
+ setenv("SAL_DISABLE_DEFAULTPRINTER", "1", 1);
+ setenv("SAL_NO_FONT_LOOKUP", "1", 1);
+
+ //allow bubbling of max input len to fuzzer targets
+ int nMaxLen = 0;
+ for (int i = 0; i < *argc; ++i)
+ {
+ if (strncmp((*argv)[i], "-max_len=", 9) == 0)
+ nMaxLen = atoi((*argv)[i] + 9);
+ }
+ setenv("FUZZ_MAX_INPUT_LEN", "1", nMaxLen);
+
+ osl_setCommandArgs(*argc, *argv);
+
+ OUString sExecDir = getExecutableDir();
+ rtl::Bootstrap::set("BRAND_BASE_DIR", sExecDir);
+ setFontConfigConf(sExecDir);
+
+ tools::extendApplicationEnvironment();
+
+ Reference< XComponentContext > xContext =
+ defaultBootstrap_InitialComponentContext(sExecDir + getExecutableName() + ".unorc");
+ Reference< XMultiServiceFactory > xServiceManager( xContext->getServiceManager(), UNO_QUERY );
+ if( !xServiceManager.is() )
+ Application::Abort( "Failed to bootstrap" );
+ comphelper::setProcessServiceFactory( xServiceManager );
+ utl::ConfigManager::EnableFuzzing();
+ Application::EnableHeadlessMode(false);
+ InitVCL();
+
+ //we don't have a de-init, so inside this leak disabled region...
+ //get the font info
+ psp::PrintFontManager::get();
+ //get the printer info
+ Printer::GetPrinterQueues();
+}
+
+void TypicalFuzzerInitialize(int *argc, char ***argv)
+{
+ if (__lsan_disable)
+ __lsan_disable();
+
+ CommonInitialize(argc, argv);
+
+ if (__lsan_enable)
+ __lsan_enable();
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/diffuzzer.cxx b/vcl/workben/diffuzzer.cxx
new file mode 100644
index 000000000..c9bc77a16
--- /dev/null
+++ b/vcl/workben/diffuzzer.cxx
@@ -0,0 +1,86 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+extern "C" {
+void* i18npool_component_getFactory(const char*, void*, void*);
+
+void* com_sun_star_i18n_LocaleDataImpl_get_implementation(void*, void*);
+void* com_sun_star_i18n_BreakIterator_Unicode_get_implementation(void*, void*);
+void* com_sun_star_i18n_BreakIterator_get_implementation(void*, void*);
+void* com_sun_star_comp_framework_Desktop_get_implementation(void*, void*);
+void* com_sun_star_i18n_CharacterClassification_Unicode_get_implementation(void*, void*);
+void* com_sun_star_i18n_CharacterClassification_get_implementation(void*, void*);
+void* com_sun_star_i18n_Collator_get_implementation(void*, void*);
+void* com_sun_star_i18n_NativeNumberSupplier_get_implementation(void*, void*);
+void* com_sun_star_i18n_NumberFormatCodeMapper_get_implementation(void*, void*);
+void* com_sun_star_i18n_Transliteration_get_implementation(void*, void*);
+}
+
+const lib_to_factory_mapping* lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[]
+ = { { "libi18npoollo.a", i18npool_component_getFactory }, { 0, 0 } };
+
+ return map;
+}
+
+const lib_to_constructor_mapping* lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[]
+ = { { "com_sun_star_i18n_LocaleDataImpl_get_implementation",
+ com_sun_star_i18n_LocaleDataImpl_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation",
+ com_sun_star_i18n_BreakIterator_Unicode_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_get_implementation",
+ com_sun_star_i18n_BreakIterator_get_implementation },
+ { "com_sun_star_comp_framework_Desktop_get_implementation",
+ com_sun_star_comp_framework_Desktop_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation",
+ com_sun_star_i18n_CharacterClassification_Unicode_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_get_implementation",
+ com_sun_star_i18n_CharacterClassification_get_implementation },
+ { "com_sun_star_i18n_Collator_get_implementation",
+ com_sun_star_i18n_Collator_get_implementation },
+ { "com_sun_star_i18n_NativeNumberSupplier_get_implementation",
+ com_sun_star_i18n_NativeNumberSupplier_get_implementation },
+ { "com_sun_star_i18n_NumberFormatCodeMapper_get_implementation",
+ com_sun_star_i18n_NumberFormatCodeMapper_get_implementation },
+ { "com_sun_star_i18n_Transliteration_get_implementation",
+ com_sun_star_i18n_Transliteration_get_implementation },
+ { 0, 0 } };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*) { return nullptr; }
+
+extern "C" void* ScCreateDialogFactory() { return nullptr; }
+
+extern "C" bool TestImportDIF(SvStream& rStream);
+
+extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportDIF(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/diffuzzer.options b/vcl/workben/diffuzzer.options
new file mode 100644
index 000000000..d851ad58c
--- /dev/null
+++ b/vcl/workben/diffuzzer.options
@@ -0,0 +1,4 @@
+[libfuzzer]
+max_len = 65536
+[env]
+AFL_DRIVER_DONT_DEFER=1
diff --git a/vcl/workben/docxfuzzer.cxx b/vcl/workben/docxfuzzer.cxx
new file mode 100644
index 000000000..4e116c600
--- /dev/null
+++ b/vcl/workben/docxfuzzer.cxx
@@ -0,0 +1,39 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+extern "C" void* SwCreateDialogFactory()
+{
+ return nullptr;
+}
+
+extern "C" void* com_sun_star_comp_Writer_EPUBExportFilter_get_implementation()
+{
+ return nullptr;
+}
+
+extern "C" bool TestImportDOCX(SvStream &rStream);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportDOCX(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/docxfuzzer.options b/vcl/workben/docxfuzzer.options
new file mode 100644
index 000000000..db9a3e8c6
--- /dev/null
+++ b/vcl/workben/docxfuzzer.options
@@ -0,0 +1,4 @@
+[libfuzzer]
+max_len = 98304
+[env]
+AFL_DRIVER_DONT_DEFER=1
diff --git a/vcl/workben/dxffuzzer.cxx b/vcl/workben/dxffuzzer.cxx
new file mode 100644
index 000000000..6ca526a1d
--- /dev/null
+++ b/vcl/workben/dxffuzzer.cxx
@@ -0,0 +1,67 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+extern "C" {
+void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * );
+}
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation },
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" bool idxGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ Graphic aGraphic;
+ (void)idxGraphicImport(aStream, aGraphic, nullptr);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/dxffuzzer.options b/vcl/workben/dxffuzzer.options
new file mode 100644
index 000000000..678d526b1
--- /dev/null
+++ b/vcl/workben/dxffuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 65536
diff --git a/vcl/workben/epsfuzzer.cxx b/vcl/workben/epsfuzzer.cxx
new file mode 100644
index 000000000..effb05193
--- /dev/null
+++ b/vcl/workben/epsfuzzer.cxx
@@ -0,0 +1,67 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+extern "C" {
+void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * );
+}
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation },
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" bool ipsGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ Graphic aGraphic;
+ (void)ipsGraphicImport(aStream, aGraphic, nullptr);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/epsfuzzer.options b/vcl/workben/epsfuzzer.options
new file mode 100644
index 000000000..678d526b1
--- /dev/null
+++ b/vcl/workben/epsfuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 65536
diff --git a/vcl/workben/fftester.cxx b/vcl/workben/fftester.cxx
new file mode 100644
index 000000000..66b51a5d3
--- /dev/null
+++ b/vcl/workben/fftester.cxx
@@ -0,0 +1,692 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+ /* e.g.
+ make
+ cp workdir/LinkTarget/Executable/fftester instdir/program
+ LD_LIBRARY_PATH=`pwd`/instdir/program instdir/program/fftester <foo> png
+ */
+
+#include <sal/main.h>
+#include <tools/extendapplicationenvironment.hxx>
+
+#include <cppuhelper/bootstrap.hxx>
+#include <comphelper/processfactory.hxx>
+
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/ucb/XContentProvider.hpp>
+#include <com/sun/star/ucb/XUniversalContentBroker.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
+#include <unotools/configmgr.hxx>
+#include <vcl/dibtools.hxx>
+#include <vcl/event.hxx>
+#include <vcl/graphicfilter.hxx>
+#include <vcl/pngread.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/wmf.hxx>
+#include <vcl/wrkwin.hxx>
+#include <fltcall.hxx>
+#include <osl/file.hxx>
+#include <osl/module.hxx>
+#include <tools/stream.hxx>
+#include <vcl/gdimtf.hxx>
+
+#include "../source/filter/igif/gifread.hxx"
+#include "../source/filter/ixbm/xbmread.hxx"
+#include "../source/filter/ixpm/xpmread.hxx"
+#include "../source/filter/jpeg/jpeg.hxx"
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace cppu;
+
+#ifndef DISABLE_DYNLOADING
+extern "C" { static void thisModule() {} }
+#endif
+
+typedef bool (*FFilterCall)(SvStream &rStream);
+
+SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
+{
+ int ret = -1;
+ try
+ {
+ if (argc < 3)
+ {
+ fprintf(stderr, "Usage: fftester <filename> <wmf|jpg>\n");
+ return -1;
+ }
+
+ setenv("SAL_USE_VCLPLUGIN", "svp", 1);
+ setenv("JPEGMEM", "768M", 1);
+ setenv("SC_MAX_MATRIX_ELEMENTS", "60000000", 1);
+ setenv("SC_NO_THREADED_CALCULATION", "1", 1);
+ setenv("SAL_WMF_COMPLEXCLIP_VIA_REGION", "1", 1);
+ setenv("SAL_DISABLE_PRINTERLIST", "1", 1);
+ setenv("SAL_DISABLE_DEFAULTPRINTER", "1", 1);
+ setenv("SAL_NO_FONT_LOOKUP", "1", 1);
+
+ OUString in(argv[1], strlen(argv[1]), RTL_TEXTENCODING_UTF8);
+ OUString out;
+ osl::File::getFileURLFromSystemPath(in, out);
+
+ tools::extendApplicationEnvironment();
+
+ Reference< XComponentContext > xContext = defaultBootstrap_InitialComponentContext();
+ Reference< XMultiServiceFactory > xServiceManager( xContext->getServiceManager(), UNO_QUERY );
+ if( !xServiceManager.is() )
+ Application::Abort( "Failed to bootstrap" );
+ comphelper::setProcessServiceFactory( xServiceManager );
+ utl::ConfigManager::EnableFuzzing();
+
+ // initialise unconfigured UCB:
+ css::uno::Reference<css::ucb::XUniversalContentBroker> xUcb(comphelper::getProcessServiceFactory()->
+ createInstance("com.sun.star.ucb.UniversalContentBroker"), css::uno::UNO_QUERY_THROW);
+ css::uno::Sequence<css::uno::Any> aArgs(1);
+ aArgs[0] <<= OUString("NoConfig");
+ css::uno::Reference<css::ucb::XContentProvider> xFileProvider(comphelper::getProcessServiceFactory()->
+ createInstanceWithArguments("com.sun.star.ucb.FileContentProvider", aArgs), css::uno::UNO_QUERY_THROW);
+ xUcb->registerContentProvider(xFileProvider, "file", true);
+
+ Application::EnableHeadlessMode(false);
+ InitVCL();
+
+ if (strcmp(argv[2], "wmf") == 0 || strcmp(argv[2], "emf") == 0)
+ {
+ GDIMetaFile aGDIMetaFile;
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>(ReadWindowMetafile(aFileStream, aGDIMetaFile));
+ }
+ else if (strcmp(argv[2], "jpg") == 0)
+ {
+ Graphic aGraphic;
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>(ImportJPEG(aFileStream, aGraphic, GraphicFilterImportFlags::NONE, nullptr));
+ }
+ else if (strcmp(argv[2], "gif") == 0)
+ {
+ SvFileStream aFileStream(out, StreamMode::READ);
+ Graphic aGraphic;
+ ret = static_cast<int>(ImportGIF(aFileStream, aGraphic));
+ }
+ else if (strcmp(argv[2], "xbm") == 0)
+ {
+ Graphic aGraphic;
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>(ImportXBM(aFileStream, aGraphic));
+ }
+ else if (strcmp(argv[2], "xpm") == 0)
+ {
+ Graphic aGraphic;
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>(ImportXPM(aFileStream, aGraphic));
+ }
+ else if (strcmp(argv[2], "png") == 0)
+ {
+ SvFileStream aFileStream(out, StreamMode::READ);
+ vcl::PNGReader aReader(aFileStream);
+ ret = static_cast<int>(!!aReader.Read());
+ }
+ else if (strcmp(argv[2], "bmp") == 0)
+ {
+ Bitmap aTarget;
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>(ReadDIB(aTarget, aFileStream, true));
+ }
+ else if (strcmp(argv[2], "svm") == 0)
+ {
+ GDIMetaFile aGDIMetaFile;
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ReadGDIMetaFile(aFileStream, aGDIMetaFile);
+ }
+#ifndef DISABLE_DYNLOADING
+ else if (strcmp(argv[2], "pcd") == 0)
+ {
+ static PFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libgielo.so");
+ pfnImport = reinterpret_cast<PFilterCall>(
+ aLibrary.getFunctionSymbol("icdGraphicImport"));
+ aLibrary.release();
+ }
+ Graphic aGraphic;
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr));
+ }
+ else if (strcmp(argv[2], "dxf") == 0)
+ {
+ static PFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libgielo.so");
+ pfnImport = reinterpret_cast<PFilterCall>(
+ aLibrary.getFunctionSymbol("idxGraphicImport"));
+ aLibrary.release();
+ }
+ Graphic aGraphic;
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr));
+ }
+ else if (strcmp(argv[2], "met") == 0)
+ {
+ static PFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libgielo.so");
+ pfnImport = reinterpret_cast<PFilterCall>(
+ aLibrary.getFunctionSymbol("imeGraphicImport"));
+ aLibrary.release();
+ }
+ Graphic aGraphic;
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr));
+ }
+ else if ((strcmp(argv[2], "pbm") == 0) || strcmp(argv[2], "ppm") == 0)
+ {
+ static PFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libgielo.so");
+ pfnImport = reinterpret_cast<PFilterCall>(
+ aLibrary.getFunctionSymbol("ipbGraphicImport"));
+ aLibrary.release();
+ }
+ Graphic aGraphic;
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr));
+ }
+ else if (strcmp(argv[2], "psd") == 0)
+ {
+ static PFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libgielo.so");
+ pfnImport = reinterpret_cast<PFilterCall>(
+ aLibrary.getFunctionSymbol("ipdGraphicImport"));
+ aLibrary.release();
+ }
+ Graphic aGraphic;
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr));
+ }
+ else if (strcmp(argv[2], "eps") == 0)
+ {
+ static PFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libgielo.so");
+ pfnImport = reinterpret_cast<PFilterCall>(
+ aLibrary.getFunctionSymbol("ipsGraphicImport"));
+ aLibrary.release();
+ }
+ Graphic aGraphic;
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr));
+ }
+ else if (strcmp(argv[2], "pct") == 0)
+ {
+ static PFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libgielo.so");
+ pfnImport = reinterpret_cast<PFilterCall>(
+ aLibrary.getFunctionSymbol("iptGraphicImport"));
+ aLibrary.release();
+ }
+ Graphic aGraphic;
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr));
+ }
+ else if (strcmp(argv[2], "pcx") == 0)
+ {
+ static PFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libgielo.so");
+ pfnImport = reinterpret_cast<PFilterCall>(
+ aLibrary.getFunctionSymbol("ipxGraphicImport"));
+ aLibrary.release();
+ }
+ Graphic aGraphic;
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr));
+ }
+ else if (strcmp(argv[2], "ras") == 0)
+ {
+ static PFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libgielo.so");
+ pfnImport = reinterpret_cast<PFilterCall>(
+ aLibrary.getFunctionSymbol("iraGraphicImport"));
+ aLibrary.release();
+ }
+ Graphic aGraphic;
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr));
+ }
+ else if (strcmp(argv[2], "tga") == 0)
+ {
+ static PFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libgielo.so");
+ pfnImport = reinterpret_cast<PFilterCall>(
+ aLibrary.getFunctionSymbol("itgGraphicImport"));
+ aLibrary.release();
+ }
+ Graphic aGraphic;
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr));
+ }
+ else if (strcmp(argv[2], "tif") == 0)
+ {
+ static PFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libgielo.so");
+ pfnImport = reinterpret_cast<PFilterCall>(
+ aLibrary.getFunctionSymbol("itiGraphicImport"));
+ aLibrary.release();
+ }
+ Graphic aGraphic;
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream, aGraphic, nullptr));
+ }
+ else if ((strcmp(argv[2], "doc") == 0) || (strcmp(argv[2], "ww8") == 0))
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libmswordlo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportWW8"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "ww6") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libmswordlo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportWW6"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "ww2") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libmswordlo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportWW2"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "rtf") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libmswordlo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportRTF"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "html") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libswlo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportHTML"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "fodt") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libswlo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportFODT"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "docx") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libswlo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportDOCX"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "fods") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libsclo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportFODS"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "xlsx") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libsclo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportXLSX"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "fodp") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libsdlo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportFODP"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "pptx") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libsdlo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportPPTX"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "xls") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libscfiltlo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportXLS"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "wks") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libscfiltlo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportWKS"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "hwp") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libhwplo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportHWP"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "602") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libt602filterlo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImport602"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "lwp") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "liblwpftlo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportLWP"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "ppt") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libsdfiltlo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportPPT"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "cgm") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libsdlo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportCGM"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "qpw") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libscfiltlo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportQPW"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "dif") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libscfiltlo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportDIF"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "sc-rtf") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libscfiltlo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportCalcRTF"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "slk") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libsclo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportSLK"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "ole") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libsotlo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportOLE2"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "mml") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libsmlo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportMML"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "mtp") == 0)
+ {
+ static FFilterCall pfnImport(nullptr);
+ if (!pfnImport)
+ {
+ osl::Module aLibrary;
+ aLibrary.loadRelative(&thisModule, "libsmlo.so", SAL_LOADMODULE_LAZY);
+ pfnImport = reinterpret_cast<FFilterCall>(
+ aLibrary.getFunctionSymbol("TestImportMathType"));
+ aLibrary.release();
+ }
+ SvFileStream aFileStream(out, StreamMode::READ);
+ ret = static_cast<int>((*pfnImport)(aFileStream));
+ }
+ else if (strcmp(argv[2], "sft") == 0)
+ {
+ SvFileStream aFileStream(out, StreamMode::READ);
+ std::vector<sal_uInt8> aData(aFileStream.remainingSize());
+ aFileStream.ReadBytes(aData.data(), aData.size());
+ (void)vcl::Font::identifyFont(aData.data(), aData.size());
+ }
+
+#endif
+ }
+ catch (...)
+ {
+ abort();
+ }
+
+ return ret;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/fodpfuzzer.cxx b/vcl/workben/fodpfuzzer.cxx
new file mode 100644
index 000000000..603849742
--- /dev/null
+++ b/vcl/workben/fodpfuzzer.cxx
@@ -0,0 +1,39 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+extern "C" bool TestImportFODP(SvStream &rStream);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" void* SdCreateDialogFactory()
+{
+ return nullptr;
+}
+
+extern "C" void* com_sun_star_comp_Draw_VisioImportFilter_get_implementation()
+{
+ return nullptr;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportFODP(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/fodpfuzzer.options b/vcl/workben/fodpfuzzer.options
new file mode 100644
index 000000000..120b6953b
--- /dev/null
+++ b/vcl/workben/fodpfuzzer.options
@@ -0,0 +1,5 @@
+[libfuzzer]
+max_len = 65536
+dict = xml.dict
+[env]
+AFL_DRIVER_DONT_DEFER=1
diff --git a/vcl/workben/fodsfuzzer.cxx b/vcl/workben/fodsfuzzer.cxx
new file mode 100644
index 000000000..ed9efd6e3
--- /dev/null
+++ b/vcl/workben/fodsfuzzer.cxx
@@ -0,0 +1,34 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+extern "C" void* ScCreateDialogFactory()
+{
+ return nullptr;
+}
+
+extern "C" bool TestImportFODS(SvStream &rStream);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportFODS(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/fodsfuzzer.options b/vcl/workben/fodsfuzzer.options
new file mode 100644
index 000000000..120b6953b
--- /dev/null
+++ b/vcl/workben/fodsfuzzer.options
@@ -0,0 +1,5 @@
+[libfuzzer]
+max_len = 65536
+dict = xml.dict
+[env]
+AFL_DRIVER_DONT_DEFER=1
diff --git a/vcl/workben/fodtfuzzer.cxx b/vcl/workben/fodtfuzzer.cxx
new file mode 100644
index 000000000..54ae26622
--- /dev/null
+++ b/vcl/workben/fodtfuzzer.cxx
@@ -0,0 +1,39 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+extern "C" void* SwCreateDialogFactory()
+{
+ return nullptr;
+}
+
+extern "C" void* com_sun_star_comp_Writer_EPUBExportFilter_get_implementation()
+{
+ return nullptr;
+}
+
+extern "C" bool TestImportFODT(SvStream &rStream);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportFODT(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/fodtfuzzer.options b/vcl/workben/fodtfuzzer.options
new file mode 100644
index 000000000..120b6953b
--- /dev/null
+++ b/vcl/workben/fodtfuzzer.options
@@ -0,0 +1,5 @@
+[libfuzzer]
+max_len = 65536
+dict = xml.dict
+[env]
+AFL_DRIVER_DONT_DEFER=1
diff --git a/vcl/workben/giffuzzer.cxx b/vcl/workben/giffuzzer.cxx
new file mode 100644
index 000000000..7a2b9a9f0
--- /dev/null
+++ b/vcl/workben/giffuzzer.cxx
@@ -0,0 +1,56 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <../source/filter/igif/gifread.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ Graphic aGraphic;
+ (void)ImportGIF(aStream, aGraphic);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/giffuzzer.options b/vcl/workben/giffuzzer.options
new file mode 100644
index 000000000..57d53b24e
--- /dev/null
+++ b/vcl/workben/giffuzzer.options
@@ -0,0 +1,3 @@
+[libfuzzer]
+max_len = 65536
+dict = gif.dict
diff --git a/vcl/workben/htmlfuzzer.cxx b/vcl/workben/htmlfuzzer.cxx
new file mode 100644
index 000000000..6da6c853f
--- /dev/null
+++ b/vcl/workben/htmlfuzzer.cxx
@@ -0,0 +1,33 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+extern "C" void* SwCreateDialogFactory() { return nullptr; }
+
+extern "C" void* com_sun_star_comp_Writer_EPUBExportFilter_get_implementation() { return nullptr; }
+
+extern "C" bool TestImportHTML(SvStream& rStream);
+
+extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportHTML(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/htmlfuzzer.options b/vcl/workben/htmlfuzzer.options
new file mode 100644
index 000000000..cd3dd2011
--- /dev/null
+++ b/vcl/workben/htmlfuzzer.options
@@ -0,0 +1,3 @@
+[libfuzzer]
+max_len = 65536
+dict = html_tags.dict
diff --git a/vcl/workben/hwpfuzzer.cxx b/vcl/workben/hwpfuzzer.cxx
new file mode 100644
index 000000000..430b1bdfc
--- /dev/null
+++ b/vcl/workben/hwpfuzzer.cxx
@@ -0,0 +1,57 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" bool TestImportHWP(SvStream &rStream);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportHWP(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/hwpfuzzer.options b/vcl/workben/hwpfuzzer.options
new file mode 100644
index 000000000..678d526b1
--- /dev/null
+++ b/vcl/workben/hwpfuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 65536
diff --git a/vcl/workben/icontest.cxx b/vcl/workben/icontest.cxx
new file mode 100644
index 000000000..4b2bb7303
--- /dev/null
+++ b/vcl/workben/icontest.cxx
@@ -0,0 +1,219 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+/*
+ * =======================================================================
+ *
+ * This is a quick hack to test some stuff. Work in progress. Don't touch
+ * and don't bother inspecting too closely.
+ *
+ * =======================================================================
+ */
+
+#include <iostream>
+
+#include <math.h>
+
+#include <glm/gtx/bit.hpp>
+
+#include <com/sun/star/lang/XComponent.hpp>
+#include <com/sun/star/lang/XMultiComponentFactory.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/ucb/UniversalContentBroker.hpp>
+#include <comphelper/processfactory.hxx>
+#include <cppuhelper/bootstrap.hxx>
+#include <osl/file.hxx>
+#include <sal/log.hxx>
+#include <tools/stream.hxx>
+#include <vcl/builder.hxx>
+#include <vcl/toolkit/button.hxx>
+#include <vcl/toolkit/dialog.hxx>
+#include <vcl/fixed.hxx>
+#include <vcl/graph.hxx>
+#include <vcl/graphicfilter.hxx>
+#include <vcl/image.hxx>
+#include <vcl/opengl/OpenGLContext.hxx>
+#include <vcl/opengl/OpenGLHelper.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/vclmain.hxx>
+#include <vcl/wrkwin.hxx>
+
+using namespace com::sun::star;
+
+namespace {
+ const int WIDTH = 1000, HEIGHT = 800;
+
+ double getTimeNow()
+ {
+ TimeValue aValue;
+ osl_getSystemTime(&aValue);
+ return static_cast<double>(aValue.Seconds) +
+ static_cast<double>(aValue.Nanosec) / (1000*1000*1000);
+ }
+
+class MyWorkWindow : public WorkWindow
+{
+ double mnStartTime;
+ int mnPaintCount;
+
+public:
+ Graphic maGraphic;
+ BitmapEx *mpBitmap;
+ VclPtr<FixedBitmap> mpFixedBitmap;
+
+ MyWorkWindow( vcl::Window* pParent, WinBits nWinStyle );
+ virtual ~MyWorkWindow() override { disposeOnce(); }
+ virtual void dispose() override { mpFixedBitmap.clear(); WorkWindow::dispose(); }
+ void LoadGraphic( const OUString& sImageFile );
+
+ virtual void Paint( vcl::RenderContext& /*rRenderContext*/, const tools::Rectangle& rRect ) override;
+ virtual void Resize() override;
+};
+
+}
+
+MyWorkWindow::MyWorkWindow( vcl::Window* pParent, WinBits nWinStyle )
+ : WorkWindow(pParent, nWinStyle)
+ , mpBitmap(nullptr)
+ , mpFixedBitmap(nullptr)
+{
+ mnPaintCount = 0;
+ mnStartTime = getTimeNow();
+ EnableInput();
+}
+
+void MyWorkWindow::LoadGraphic( const OUString& sImageFile )
+{
+ SvFileStream aFileStream( sImageFile, StreamMode::READ );
+ GraphicFilter aGraphicFilter(false);
+ if (aGraphicFilter.ImportGraphic(maGraphic, sImageFile, aFileStream) != ERRCODE_NONE)
+ {
+ SAL_WARN("vcl.icontest", "Could not import image '" << sImageFile << "'");
+ return;
+ }
+}
+
+void MyWorkWindow::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect)
+{
+ std::cout << "==> Paint! " << mnPaintCount++ << " (vcl) " << GetSizePixel() << " " << getTimeNow() - mnStartTime << std::endl;
+
+ Size aGraphicSize( maGraphic.GetSizePixel() );
+ float aspect = static_cast<float>(aGraphicSize.Width()) / aGraphicSize.Height();
+ Size aSize;
+ if( aspect >= (float(WIDTH)) / HEIGHT )
+ aSize = Size( WIDTH, HEIGHT/aspect );
+ else
+ aSize = Size( WIDTH * aspect, HEIGHT );
+ aSize.setWidth( aSize.Width() * (1 + (0.1*sin(mnPaintCount/60.))) );
+ aSize.setHeight( aSize.Height() * (1 + (0.1*sin(mnPaintCount/50.))) );
+
+ BitmapEx aEmpty;
+ mpFixedBitmap->SetBitmap( aEmpty );
+ GraphicConversionParameters aConv( aSize );
+ mpBitmap = new BitmapEx(maGraphic.GetBitmapEx( aConv ));
+ mpFixedBitmap->SetBitmap( *mpBitmap );
+ mpFixedBitmap->SetSizePixel( aSize );
+
+ WorkWindow::Paint(rRenderContext, rRect);
+
+ if (mnPaintCount == 100)
+ Application::Quit();
+
+ Invalidate( InvalidateFlags::Children );
+}
+
+void MyWorkWindow::Resize()
+{
+ SAL_INFO("vcl.icontest", "Resize " << GetSizePixel());
+}
+
+namespace {
+
+class IconTestApp : public Application
+{
+public:
+ virtual void Init() override;
+ virtual int Main() override;
+
+ IconTestApp() : nRet(EXIT_SUCCESS) {};
+
+private:
+ int nRet;
+
+ void DoItWithVcl(const OUString& sImageFile);
+};
+
+}
+
+void IconTestApp::Init()
+{
+ nRet = EXIT_SUCCESS;
+
+ uno::Reference<uno::XComponentContext> xContext =
+ cppu::defaultBootstrap_InitialComponentContext();
+ uno::Reference<lang::XMultiComponentFactory> xFactory =
+ xContext->getServiceManager();
+ uno::Reference<lang::XMultiServiceFactory> xSFactory(xFactory, uno::UNO_QUERY_THROW);
+ comphelper::setProcessServiceFactory(xSFactory);
+
+ // Create UCB (for backwards compatibility, in case some code still uses
+ // plain createInstance w/o args directly to obtain an instance):
+ ::ucb::UniversalContentBroker::create(
+ comphelper::getProcessComponentContext() );
+}
+
+int IconTestApp::Main()
+{
+ if (GetCommandLineParamCount() != 1)
+ {
+ fprintf(stderr, "Usage: imagetest <image>\n");
+ return EXIT_FAILURE;
+ }
+ OUString sImageFile( GetCommandLineParam( 0 ) );
+ DoItWithVcl( sImageFile );
+
+ return nRet;
+}
+
+void IconTestApp::DoItWithVcl( const OUString& sImageFile)
+{
+ try
+ {
+ VclPtrInstance<MyWorkWindow> pWindow( nullptr, WB_APP | WB_STDWORK | WB_SIZEABLE | WB_CLOSEABLE | WB_CLIPCHILDREN );
+
+ pWindow->SetText("VCL Image Test");
+
+ pWindow->LoadGraphic( sImageFile );
+ pWindow->mpFixedBitmap = VclPtr<FixedBitmap>::Create( pWindow );
+ pWindow->mpFixedBitmap->SetPosPixel( Point( 0, 0 ) );
+ pWindow->mpFixedBitmap->Show();
+
+ pWindow->Hide();
+ pWindow->Show();
+
+ Execute();
+ }
+ catch (const uno::Exception &e)
+ {
+ fprintf(stderr, "fatal error: %s\n", OUStringToOString(e.Message, osl_getThreadTextEncoding()).getStr());
+ nRet = EXIT_FAILURE;
+ }
+ catch (const std::exception &e)
+ {
+ fprintf(stderr, "fatal error: %s\n", e.what());
+ nRet = EXIT_FAILURE;
+ }
+}
+
+void vclmain::createApplication()
+{
+ static IconTestApp aApp;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/jpgfuzzer.cxx b/vcl/workben/jpgfuzzer.cxx
new file mode 100644
index 000000000..5850deec5
--- /dev/null
+++ b/vcl/workben/jpgfuzzer.cxx
@@ -0,0 +1,56 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <../source/filter/jpeg/jpeg.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ Graphic aGraphic;
+ (void)ImportJPEG(aStream, aGraphic, GraphicFilterImportFlags::NONE, nullptr);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/jpgfuzzer.options b/vcl/workben/jpgfuzzer.options
new file mode 100644
index 000000000..dfcaf9cd9
--- /dev/null
+++ b/vcl/workben/jpgfuzzer.options
@@ -0,0 +1,3 @@
+[libfuzzer]
+max_len = 65536
+dict = jpeg.dict
diff --git a/vcl/workben/localestub/localedata_en_AU.cxx b/vcl/workben/localestub/localedata_en_AU.cxx
new file mode 100644
index 000000000..04742a8bb
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_AU.cxx
@@ -0,0 +1,1263 @@
+#include <sal/types.h>
+
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = {0x65, 0x6e, 0x0};
+static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0};
+static const sal_Unicode countryID[] = {0x41, 0x55, 0x0};
+static const sal_Unicode countryDefaultName[] = {0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x0};
+static const sal_Unicode Variant[] = {0x0};
+
+static const sal_Unicode* LCInfoArray[] = {
+ langID,
+ langDefaultName,
+ countryID,
+ countryDefaultName,
+ Variant
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_AU(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCInfoArray;
+}
+
+
+static const sal_Unicode LC_CTYPE_Unoid[] = {0x0};
+static const sal_Unicode dateSeparator[] = {0x2f, 0x0};
+static const sal_Unicode thousandSeparator[] = {0x2c, 0x0};
+static const sal_Unicode decimalSeparator[] = {0x2e, 0x0};
+static const sal_Unicode timeSeparator[] = {0x3a, 0x0};
+static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0};
+static const sal_Unicode listSeparator[] = {0x3b, 0x0};
+static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x2c, 0x20, 0x0};
+static const sal_Unicode LongDateDaySeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0};
+static const sal_Unicode quotationStart[] = {0x2018, 0x0};
+static const sal_Unicode quotationEnd[] = {0x2019, 0x0};
+static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0};
+static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0};
+static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0};
+static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0};
+static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0};
+
+static const sal_Unicode* LCType[] = {
+ LC_CTYPE_Unoid,
+ dateSeparator,
+ thousandSeparator,
+ decimalSeparator,
+ timeSeparator,
+ time100SecSeparator,
+ listSeparator,
+ quotationStart,
+ quotationEnd,
+ doubleQuotationStart,
+ doubleQuotationEnd,
+ timeAM,
+ timePM,
+ measurementSystem,
+ LongDateDayOfWeekSeparator,
+ LongDateDaySeparator,
+ LongDateMonthSeparator,
+ LongDateYearSeparator
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_AU(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCType;
+}
+static const sal_Unicode replaceFrom0[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x0};
+static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x24, 0x2d, 0x43, 0x30, 0x39, 0x5d, 0x0};
+static const sal_Unicode FormatKey0[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement0[] = {1};
+static const sal_Unicode FormatType0[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage0[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex0[] = {0};
+static const sal_Unicode FormatCode0[] = {0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0};
+static const sal_Unicode FormatDefaultName0[] = {0x0};
+static const sal_Unicode FormatKey1[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement1[] = {1};
+static const sal_Unicode FormatType1[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage1[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex1[] = {1};
+static const sal_Unicode FormatCode1[] = {0x30, 0x0};
+static const sal_Unicode FormatDefaultName1[] = {0x0};
+static const sal_Unicode FormatKey2[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement2[] = {0};
+static const sal_Unicode FormatType2[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage2[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex2[] = {2};
+static const sal_Unicode FormatCode2[] = {0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName2[] = {0x0};
+static const sal_Unicode FormatKey3[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement3[] = {0};
+static const sal_Unicode FormatType3[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage3[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex3[] = {3};
+static const sal_Unicode FormatCode3[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName3[] = {0x0};
+static const sal_Unicode FormatKey4[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement4[] = {0};
+static const sal_Unicode FormatType4[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage4[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex4[] = {4};
+static const sal_Unicode FormatCode4[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName4[] = {0x0};
+static const sal_Unicode FormatKey5[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement5[] = {0};
+static const sal_Unicode FormatType5[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage5[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex5[] = {5};
+static const sal_Unicode FormatCode5[] = {0x23, 0x2c, 0x23, 0x23, 0x23, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName5[] = {0x0};
+static const sal_Unicode FormatKey6[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement6[] = {0};
+static const sal_Unicode FormatType6[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage6[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex6[] = {70};
+static const sal_Unicode FormatCode6[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x29, 0x0};
+static const sal_Unicode FormatDefaultName6[] = {0x0};
+static const sal_Unicode FormatKey7[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement7[] = {0};
+static const sal_Unicode FormatType7[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage7[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex7[] = {71};
+static const sal_Unicode FormatCode7[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x29, 0x0};
+static const sal_Unicode FormatDefaultName7[] = {0x0};
+static const sal_Unicode FormatKey8[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement8[] = {0};
+static const sal_Unicode FormatType8[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage8[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex8[] = {6};
+static const sal_Unicode FormatCode8[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName8[] = {0x0};
+static const sal_Unicode FormatKey9[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement9[] = {1};
+static const sal_Unicode FormatType9[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage9[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex9[] = {7};
+static const sal_Unicode FormatCode9[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName9[] = {0x0};
+static const sal_Unicode FormatKey10[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement10[] = {0};
+static const sal_Unicode FormatType10[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage10[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex10[] = {78};
+static const sal_Unicode FormatCode10[] = {0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName10[] = {0x0};
+static const sal_Unicode FormatKey11[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement11[] = {1};
+static const sal_Unicode FormatType11[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage11[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex11[] = {8};
+static const sal_Unicode FormatCode11[] = {0x30, 0x25, 0x0};
+static const sal_Unicode FormatDefaultName11[] = {0x0};
+static const sal_Unicode FormatKey12[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement12[] = {1};
+static const sal_Unicode FormatType12[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage12[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex12[] = {9};
+static const sal_Unicode FormatCode12[] = {0x30, 0x2e, 0x30, 0x30, 0x25, 0x0};
+static const sal_Unicode FormatDefaultName12[] = {0x0};
+static const sal_Unicode FormatKey13[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement13[] = {1};
+static const sal_Unicode FormatType13[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage13[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex13[] = {12};
+static const sal_Unicode FormatCode13[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName13[] = {0x0};
+static const sal_Unicode FormatKey14[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement14[] = {0};
+static const sal_Unicode FormatType14[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage14[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex14[] = {13};
+static const sal_Unicode FormatCode14[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName14[] = {0x0};
+static const sal_Unicode FormatKey15[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement15[] = {0};
+static const sal_Unicode FormatType15[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage15[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex15[] = {14};
+static const sal_Unicode FormatCode15[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName15[] = {0x0};
+static const sal_Unicode FormatKey16[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement16[] = {1};
+static const sal_Unicode FormatType16[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage16[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex16[] = {15};
+static const sal_Unicode FormatCode16[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName16[] = {0x0};
+static const sal_Unicode FormatKey17[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement17[] = {0};
+static const sal_Unicode FormatType17[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage17[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex17[] = {16};
+static const sal_Unicode FormatCode17[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x20, 0x43, 0x43, 0x43, 0x0};
+static const sal_Unicode FormatDefaultName17[] = {0x0};
+static const sal_Unicode FormatKey18[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement18[] = {0};
+static const sal_Unicode FormatType18[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage18[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex18[] = {17};
+static const sal_Unicode FormatCode18[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x0};
+static const sal_Unicode FormatDefaultName18[] = {0x0};
+static const sal_Unicode FormatKey19[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement19[] = {1};
+static const sal_Unicode FormatType19[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage19[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex19[] = {18};
+static const sal_Unicode FormatCode19[] = {0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName19[] = {0x0};
+static const sal_Unicode FormatKey20[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x39, 0x0};
+static const sal_Unicode defaultFormatElement20[] = {1};
+static const sal_Unicode FormatType20[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage20[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex20[] = {19};
+static const sal_Unicode FormatCode20[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName20[] = {0x0};
+static const sal_Unicode FormatKey21[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement21[] = {1};
+static const sal_Unicode FormatType21[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage21[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex21[] = {20};
+static const sal_Unicode FormatCode21[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName21[] = {0x0};
+static const sal_Unicode FormatKey22[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement22[] = {0};
+static const sal_Unicode FormatType22[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage22[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex22[] = {21};
+static const sal_Unicode FormatCode22[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName22[] = {0x0};
+static const sal_Unicode FormatKey23[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x30, 0x0};
+static const sal_Unicode defaultFormatElement23[] = {0};
+static const sal_Unicode FormatType23[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage23[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex23[] = {22};
+static const sal_Unicode FormatCode23[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName23[] = {0x0};
+static const sal_Unicode FormatKey24[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement24[] = {0};
+static const sal_Unicode FormatType24[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage24[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex24[] = {23};
+static const sal_Unicode FormatCode24[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName24[] = {0x0};
+static const sal_Unicode FormatKey25[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement25[] = {0};
+static const sal_Unicode FormatType25[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage25[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex25[] = {24};
+static const sal_Unicode FormatCode25[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x2e, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName25[] = {0x0};
+static const sal_Unicode FormatKey26[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement26[] = {0};
+static const sal_Unicode FormatType26[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage26[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex26[] = {25};
+static const sal_Unicode FormatCode26[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName26[] = {0x0};
+static const sal_Unicode FormatKey27[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement27[] = {0};
+static const sal_Unicode FormatType27[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage27[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex27[] = {26};
+static const sal_Unicode FormatCode27[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName27[] = {0x0};
+static const sal_Unicode FormatKey28[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement28[] = {0};
+static const sal_Unicode FormatType28[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage28[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex28[] = {27};
+static const sal_Unicode FormatCode28[] = {0x4e, 0x4e, 0x2c, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName28[] = {0x0};
+static const sal_Unicode FormatKey29[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement29[] = {0};
+static const sal_Unicode FormatType29[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage29[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex29[] = {28};
+static const sal_Unicode FormatCode29[] = {0x4e, 0x4e, 0x20, 0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName29[] = {0x0};
+static const sal_Unicode FormatKey30[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement30[] = {0};
+static const sal_Unicode FormatType30[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage30[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex30[] = {29};
+static const sal_Unicode FormatCode30[] = {0x4e, 0x4e, 0x2c, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName30[] = {0x0};
+static const sal_Unicode FormatKey31[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement31[] = {0};
+static const sal_Unicode FormatType31[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage31[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex31[] = {30};
+static const sal_Unicode FormatCode31[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName31[] = {0x0};
+static const sal_Unicode FormatKey32[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement32[] = {0};
+static const sal_Unicode FormatType32[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage32[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex32[] = {31};
+static const sal_Unicode FormatCode32[] = {0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName32[] = {0x0};
+static const sal_Unicode FormatKey33[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x39, 0x0};
+static const sal_Unicode defaultFormatElement33[] = {0};
+static const sal_Unicode FormatType33[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage33[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex33[] = {32};
+static const sal_Unicode FormatCode33[] = {0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName33[] = {0x0};
+static const sal_Unicode FormatKey34[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x30, 0x0};
+static const sal_Unicode defaultFormatElement34[] = {0};
+static const sal_Unicode FormatType34[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage34[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex34[] = {33};
+static const sal_Unicode FormatCode34[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName34[] = {0x49, 0x53, 0x4f, 0x20, 0x38, 0x36, 0x30, 0x31, 0x0};
+static const sal_Unicode FormatKey35[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement35[] = {0};
+static const sal_Unicode FormatType35[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage35[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex35[] = {34};
+static const sal_Unicode FormatCode35[] = {0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName35[] = {0x0};
+static const sal_Unicode FormatKey36[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement36[] = {0};
+static const sal_Unicode FormatType36[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage36[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex36[] = {35};
+static const sal_Unicode FormatCode36[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName36[] = {0x0};
+static const sal_Unicode FormatKey37[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement37[] = {0};
+static const sal_Unicode FormatType37[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage37[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex37[] = {36};
+static const sal_Unicode FormatCode37[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName37[] = {0x0};
+static const sal_Unicode FormatKey38[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement38[] = {0};
+static const sal_Unicode FormatType38[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage38[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex38[] = {37};
+static const sal_Unicode FormatCode38[] = {0x51, 0x51, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName38[] = {0x0};
+static const sal_Unicode FormatKey39[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement39[] = {0};
+static const sal_Unicode FormatType39[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage39[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex39[] = {38};
+static const sal_Unicode FormatCode39[] = {0x57, 0x57, 0x0};
+static const sal_Unicode FormatDefaultName39[] = {0x0};
+static const sal_Unicode FormatKey40[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement40[] = {1};
+static const sal_Unicode FormatType40[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage40[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex40[] = {39};
+static const sal_Unicode FormatCode40[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName40[] = {0x0};
+static const sal_Unicode FormatKey41[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement41[] = {1};
+static const sal_Unicode FormatType41[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage41[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex41[] = {40};
+static const sal_Unicode FormatCode41[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName41[] = {0x0};
+static const sal_Unicode FormatKey42[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement42[] = {0};
+static const sal_Unicode FormatType42[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage42[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex42[] = {41};
+static const sal_Unicode FormatCode42[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName42[] = {0x0};
+static const sal_Unicode FormatKey43[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement43[] = {0};
+static const sal_Unicode FormatType43[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage43[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex43[] = {42};
+static const sal_Unicode FormatCode43[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName43[] = {0x0};
+static const sal_Unicode FormatKey44[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement44[] = {0};
+static const sal_Unicode FormatType44[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage44[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex44[] = {43};
+static const sal_Unicode FormatCode44[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName44[] = {0x0};
+static const sal_Unicode FormatKey45[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement45[] = {0};
+static const sal_Unicode FormatType45[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage45[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex45[] = {44};
+static const sal_Unicode FormatCode45[] = {0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName45[] = {0x0};
+static const sal_Unicode FormatKey46[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement46[] = {0};
+static const sal_Unicode FormatType46[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage46[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex46[] = {45};
+static const sal_Unicode FormatCode46[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName46[] = {0x0};
+static const sal_Unicode FormatKey47[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement47[] = {1};
+static const sal_Unicode FormatType47[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage47[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex47[] = {46};
+static const sal_Unicode FormatCode47[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName47[] = {0x0};
+static const sal_Unicode FormatKey48[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement48[] = {0};
+static const sal_Unicode FormatType48[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage48[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex48[] = {47};
+static const sal_Unicode FormatCode48[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x59, 0x59, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName48[] = {0x0};
+
+static const sal_Int16 FormatElementsCount0 = 49;
+static const sal_Unicode* FormatElementsArray0[] = {
+ FormatCode0,
+ FormatDefaultName0,
+ FormatKey0,
+ FormatType0,
+ FormatUsage0,
+ Formatindex0,
+ defaultFormatElement0,
+ FormatCode1,
+ FormatDefaultName1,
+ FormatKey1,
+ FormatType1,
+ FormatUsage1,
+ Formatindex1,
+ defaultFormatElement1,
+ FormatCode2,
+ FormatDefaultName2,
+ FormatKey2,
+ FormatType2,
+ FormatUsage2,
+ Formatindex2,
+ defaultFormatElement2,
+ FormatCode3,
+ FormatDefaultName3,
+ FormatKey3,
+ FormatType3,
+ FormatUsage3,
+ Formatindex3,
+ defaultFormatElement3,
+ FormatCode4,
+ FormatDefaultName4,
+ FormatKey4,
+ FormatType4,
+ FormatUsage4,
+ Formatindex4,
+ defaultFormatElement4,
+ FormatCode5,
+ FormatDefaultName5,
+ FormatKey5,
+ FormatType5,
+ FormatUsage5,
+ Formatindex5,
+ defaultFormatElement5,
+ FormatCode6,
+ FormatDefaultName6,
+ FormatKey6,
+ FormatType6,
+ FormatUsage6,
+ Formatindex6,
+ defaultFormatElement6,
+ FormatCode7,
+ FormatDefaultName7,
+ FormatKey7,
+ FormatType7,
+ FormatUsage7,
+ Formatindex7,
+ defaultFormatElement7,
+ FormatCode8,
+ FormatDefaultName8,
+ FormatKey8,
+ FormatType8,
+ FormatUsage8,
+ Formatindex8,
+ defaultFormatElement8,
+ FormatCode9,
+ FormatDefaultName9,
+ FormatKey9,
+ FormatType9,
+ FormatUsage9,
+ Formatindex9,
+ defaultFormatElement9,
+ FormatCode10,
+ FormatDefaultName10,
+ FormatKey10,
+ FormatType10,
+ FormatUsage10,
+ Formatindex10,
+ defaultFormatElement10,
+ FormatCode11,
+ FormatDefaultName11,
+ FormatKey11,
+ FormatType11,
+ FormatUsage11,
+ Formatindex11,
+ defaultFormatElement11,
+ FormatCode12,
+ FormatDefaultName12,
+ FormatKey12,
+ FormatType12,
+ FormatUsage12,
+ Formatindex12,
+ defaultFormatElement12,
+ FormatCode13,
+ FormatDefaultName13,
+ FormatKey13,
+ FormatType13,
+ FormatUsage13,
+ Formatindex13,
+ defaultFormatElement13,
+ FormatCode14,
+ FormatDefaultName14,
+ FormatKey14,
+ FormatType14,
+ FormatUsage14,
+ Formatindex14,
+ defaultFormatElement14,
+ FormatCode15,
+ FormatDefaultName15,
+ FormatKey15,
+ FormatType15,
+ FormatUsage15,
+ Formatindex15,
+ defaultFormatElement15,
+ FormatCode16,
+ FormatDefaultName16,
+ FormatKey16,
+ FormatType16,
+ FormatUsage16,
+ Formatindex16,
+ defaultFormatElement16,
+ FormatCode17,
+ FormatDefaultName17,
+ FormatKey17,
+ FormatType17,
+ FormatUsage17,
+ Formatindex17,
+ defaultFormatElement17,
+ FormatCode18,
+ FormatDefaultName18,
+ FormatKey18,
+ FormatType18,
+ FormatUsage18,
+ Formatindex18,
+ defaultFormatElement18,
+ FormatCode19,
+ FormatDefaultName19,
+ FormatKey19,
+ FormatType19,
+ FormatUsage19,
+ Formatindex19,
+ defaultFormatElement19,
+ FormatCode20,
+ FormatDefaultName20,
+ FormatKey20,
+ FormatType20,
+ FormatUsage20,
+ Formatindex20,
+ defaultFormatElement20,
+ FormatCode21,
+ FormatDefaultName21,
+ FormatKey21,
+ FormatType21,
+ FormatUsage21,
+ Formatindex21,
+ defaultFormatElement21,
+ FormatCode22,
+ FormatDefaultName22,
+ FormatKey22,
+ FormatType22,
+ FormatUsage22,
+ Formatindex22,
+ defaultFormatElement22,
+ FormatCode23,
+ FormatDefaultName23,
+ FormatKey23,
+ FormatType23,
+ FormatUsage23,
+ Formatindex23,
+ defaultFormatElement23,
+ FormatCode24,
+ FormatDefaultName24,
+ FormatKey24,
+ FormatType24,
+ FormatUsage24,
+ Formatindex24,
+ defaultFormatElement24,
+ FormatCode25,
+ FormatDefaultName25,
+ FormatKey25,
+ FormatType25,
+ FormatUsage25,
+ Formatindex25,
+ defaultFormatElement25,
+ FormatCode26,
+ FormatDefaultName26,
+ FormatKey26,
+ FormatType26,
+ FormatUsage26,
+ Formatindex26,
+ defaultFormatElement26,
+ FormatCode27,
+ FormatDefaultName27,
+ FormatKey27,
+ FormatType27,
+ FormatUsage27,
+ Formatindex27,
+ defaultFormatElement27,
+ FormatCode28,
+ FormatDefaultName28,
+ FormatKey28,
+ FormatType28,
+ FormatUsage28,
+ Formatindex28,
+ defaultFormatElement28,
+ FormatCode29,
+ FormatDefaultName29,
+ FormatKey29,
+ FormatType29,
+ FormatUsage29,
+ Formatindex29,
+ defaultFormatElement29,
+ FormatCode30,
+ FormatDefaultName30,
+ FormatKey30,
+ FormatType30,
+ FormatUsage30,
+ Formatindex30,
+ defaultFormatElement30,
+ FormatCode31,
+ FormatDefaultName31,
+ FormatKey31,
+ FormatType31,
+ FormatUsage31,
+ Formatindex31,
+ defaultFormatElement31,
+ FormatCode32,
+ FormatDefaultName32,
+ FormatKey32,
+ FormatType32,
+ FormatUsage32,
+ Formatindex32,
+ defaultFormatElement32,
+ FormatCode33,
+ FormatDefaultName33,
+ FormatKey33,
+ FormatType33,
+ FormatUsage33,
+ Formatindex33,
+ defaultFormatElement33,
+ FormatCode34,
+ FormatDefaultName34,
+ FormatKey34,
+ FormatType34,
+ FormatUsage34,
+ Formatindex34,
+ defaultFormatElement34,
+ FormatCode35,
+ FormatDefaultName35,
+ FormatKey35,
+ FormatType35,
+ FormatUsage35,
+ Formatindex35,
+ defaultFormatElement35,
+ FormatCode36,
+ FormatDefaultName36,
+ FormatKey36,
+ FormatType36,
+ FormatUsage36,
+ Formatindex36,
+ defaultFormatElement36,
+ FormatCode37,
+ FormatDefaultName37,
+ FormatKey37,
+ FormatType37,
+ FormatUsage37,
+ Formatindex37,
+ defaultFormatElement37,
+ FormatCode38,
+ FormatDefaultName38,
+ FormatKey38,
+ FormatType38,
+ FormatUsage38,
+ Formatindex38,
+ defaultFormatElement38,
+ FormatCode39,
+ FormatDefaultName39,
+ FormatKey39,
+ FormatType39,
+ FormatUsage39,
+ Formatindex39,
+ defaultFormatElement39,
+ FormatCode40,
+ FormatDefaultName40,
+ FormatKey40,
+ FormatType40,
+ FormatUsage40,
+ Formatindex40,
+ defaultFormatElement40,
+ FormatCode41,
+ FormatDefaultName41,
+ FormatKey41,
+ FormatType41,
+ FormatUsage41,
+ Formatindex41,
+ defaultFormatElement41,
+ FormatCode42,
+ FormatDefaultName42,
+ FormatKey42,
+ FormatType42,
+ FormatUsage42,
+ Formatindex42,
+ defaultFormatElement42,
+ FormatCode43,
+ FormatDefaultName43,
+ FormatKey43,
+ FormatType43,
+ FormatUsage43,
+ Formatindex43,
+ defaultFormatElement43,
+ FormatCode44,
+ FormatDefaultName44,
+ FormatKey44,
+ FormatType44,
+ FormatUsage44,
+ Formatindex44,
+ defaultFormatElement44,
+ FormatCode45,
+ FormatDefaultName45,
+ FormatKey45,
+ FormatType45,
+ FormatUsage45,
+ Formatindex45,
+ defaultFormatElement45,
+ FormatCode46,
+ FormatDefaultName46,
+ FormatKey46,
+ FormatType46,
+ FormatUsage46,
+ Formatindex46,
+ defaultFormatElement46,
+ FormatCode47,
+ FormatDefaultName47,
+ FormatKey47,
+ FormatType47,
+ FormatUsage47,
+ Formatindex47,
+ defaultFormatElement47,
+ FormatCode48,
+ FormatDefaultName48,
+ FormatKey48,
+ FormatType48,
+ FormatUsage48,
+ Formatindex48,
+ defaultFormatElement48,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_AU(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ count = FormatElementsCount0;
+ from = replaceFrom0;
+ to = replaceTo0;
+ return (sal_Unicode**)FormatElementsArray0;
+}
+static const sal_Unicode DateAcceptancePattern0[] = {0x44, 0x2f, 0x4d, 0x2f, 0x59, 0x0};
+static const sal_Unicode DateAcceptancePattern1[] = {0x44, 0x2f, 0x4d, 0x0};
+static const sal_Int16 DateAcceptancePatternsCount = 2;
+static const sal_Unicode* DateAcceptancePatternsArray[] = {
+ DateAcceptancePattern0,
+ DateAcceptancePattern1,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_AU(sal_Int16& count)
+{
+ count = DateAcceptancePatternsCount;
+ return (sal_Unicode**)DateAcceptancePatternsArray;
+}
+extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_AU(sal_Int16& count)
+{
+ return getCollatorImplementation_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_AU(sal_Int16& count)
+{
+ return getCollationOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_AU(sal_Int16& count)
+{
+ return getSearchOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_AU(sal_Int16& count)
+{
+ return getIndexAlgorithm_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_AU(sal_Int16& count)
+{
+ return getUnicodeScripts_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_AU(sal_Int16& count)
+{
+ return getFollowPageWords_en_US(count);
+}
+static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode defaultCalendar0[] = {1};
+static const sal_Unicode dayID00[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode dayDefaultAbbrvName00[] = {0x53, 0x75, 0x6e, 0x0};
+static const sal_Unicode dayDefaultFullName00[] = {0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName00[] = {0x53, 0x0};
+static const sal_Unicode dayID01[] = {0x6d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode dayDefaultAbbrvName01[] = {0x4d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode dayDefaultFullName01[] = {0x4d, 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName01[] = {0x4d, 0x0};
+static const sal_Unicode dayID02[] = {0x74, 0x75, 0x65, 0x0};
+static const sal_Unicode dayDefaultAbbrvName02[] = {0x54, 0x75, 0x65, 0x0};
+static const sal_Unicode dayDefaultFullName02[] = {0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName02[] = {0x54, 0x0};
+static const sal_Unicode dayID03[] = {0x77, 0x65, 0x64, 0x0};
+static const sal_Unicode dayDefaultAbbrvName03[] = {0x57, 0x65, 0x64, 0x0};
+static const sal_Unicode dayDefaultFullName03[] = {0x57, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName03[] = {0x57, 0x0};
+static const sal_Unicode dayID04[] = {0x74, 0x68, 0x75, 0x0};
+static const sal_Unicode dayDefaultAbbrvName04[] = {0x54, 0x68, 0x75, 0x0};
+static const sal_Unicode dayDefaultFullName04[] = {0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName04[] = {0x54, 0x0};
+static const sal_Unicode dayID05[] = {0x66, 0x72, 0x69, 0x0};
+static const sal_Unicode dayDefaultAbbrvName05[] = {0x46, 0x72, 0x69, 0x0};
+static const sal_Unicode dayDefaultFullName05[] = {0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName05[] = {0x46, 0x0};
+static const sal_Unicode dayID06[] = {0x73, 0x61, 0x74, 0x0};
+static const sal_Unicode dayDefaultAbbrvName06[] = {0x53, 0x61, 0x74, 0x0};
+static const sal_Unicode dayDefaultFullName06[] = {0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName06[] = {0x53, 0x0};
+static const sal_Unicode monthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode monthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode monthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode monthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode monthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode monthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode monthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode monthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode monthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode monthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode monthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode monthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode monthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode monthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode monthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode monthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode monthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode monthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode monthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode monthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode monthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode monthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode monthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode monthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode monthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode monthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode monthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode monthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode monthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode monthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode monthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode monthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode monthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode monthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode genitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode genitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode genitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode genitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode genitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode genitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode genitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode genitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode genitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode partitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode partitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode partitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode partitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode partitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode partitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode partitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode partitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode partitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode eraID00[] = {0x62, 0x63, 0x0};
+
+static const sal_Unicode eraDefaultAbbrvName00[] = {0x42, 0x43, 0x0};
+static const sal_Unicode eraDefaultFullName00[] = {0x42, 0x43, 0x0};
+static const sal_Unicode eraID01[] = {0x61, 0x64, 0x0};
+
+static const sal_Unicode eraDefaultAbbrvName01[] = {0x41, 0x44, 0x0};
+static const sal_Unicode eraDefaultFullName01[] = {0x41, 0x44, 0x0};
+static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode minimalDaysInFirstWeek0[] = {1};
+static const sal_Int16 calendarsCount = 1;
+
+static const sal_Unicode nbOfDays[] = {7};
+static const sal_Unicode nbOfMonths[] = {12};
+static const sal_Unicode nbOfGenitiveMonths[] = {12};
+static const sal_Unicode nbOfPartitiveMonths[] = {12};
+static const sal_Unicode nbOfEras[] = {2};
+static const sal_Unicode* calendars[] = {
+ nbOfDays,
+ nbOfMonths,
+ nbOfGenitiveMonths,
+ nbOfPartitiveMonths,
+ nbOfEras,
+ calendarID0,
+ defaultCalendar0,
+ dayID00,
+ dayDefaultAbbrvName00,
+ dayDefaultFullName00,
+ dayDefaultNarrowName00,
+ dayID01,
+ dayDefaultAbbrvName01,
+ dayDefaultFullName01,
+ dayDefaultNarrowName01,
+ dayID02,
+ dayDefaultAbbrvName02,
+ dayDefaultFullName02,
+ dayDefaultNarrowName02,
+ dayID03,
+ dayDefaultAbbrvName03,
+ dayDefaultFullName03,
+ dayDefaultNarrowName03,
+ dayID04,
+ dayDefaultAbbrvName04,
+ dayDefaultFullName04,
+ dayDefaultNarrowName04,
+ dayID05,
+ dayDefaultAbbrvName05,
+ dayDefaultFullName05,
+ dayDefaultNarrowName05,
+ dayID06,
+ dayDefaultAbbrvName06,
+ dayDefaultFullName06,
+ dayDefaultNarrowName06,
+ monthID00,
+ monthDefaultAbbrvName00,
+ monthDefaultFullName00,
+ monthDefaultNarrowName00,
+ monthID01,
+ monthDefaultAbbrvName01,
+ monthDefaultFullName01,
+ monthDefaultNarrowName01,
+ monthID02,
+ monthDefaultAbbrvName02,
+ monthDefaultFullName02,
+ monthDefaultNarrowName02,
+ monthID03,
+ monthDefaultAbbrvName03,
+ monthDefaultFullName03,
+ monthDefaultNarrowName03,
+ monthID04,
+ monthDefaultAbbrvName04,
+ monthDefaultFullName04,
+ monthDefaultNarrowName04,
+ monthID05,
+ monthDefaultAbbrvName05,
+ monthDefaultFullName05,
+ monthDefaultNarrowName05,
+ monthID06,
+ monthDefaultAbbrvName06,
+ monthDefaultFullName06,
+ monthDefaultNarrowName06,
+ monthID07,
+ monthDefaultAbbrvName07,
+ monthDefaultFullName07,
+ monthDefaultNarrowName07,
+ monthID08,
+ monthDefaultAbbrvName08,
+ monthDefaultFullName08,
+ monthDefaultNarrowName08,
+ monthID09,
+ monthDefaultAbbrvName09,
+ monthDefaultFullName09,
+ monthDefaultNarrowName09,
+ monthID010,
+ monthDefaultAbbrvName010,
+ monthDefaultFullName010,
+ monthDefaultNarrowName010,
+ monthID011,
+ monthDefaultAbbrvName011,
+ monthDefaultFullName011,
+ monthDefaultNarrowName011,
+ genitiveMonthID00,
+ genitiveMonthDefaultAbbrvName00,
+ genitiveMonthDefaultFullName00,
+ genitiveMonthDefaultNarrowName00,
+ genitiveMonthID01,
+ genitiveMonthDefaultAbbrvName01,
+ genitiveMonthDefaultFullName01,
+ genitiveMonthDefaultNarrowName01,
+ genitiveMonthID02,
+ genitiveMonthDefaultAbbrvName02,
+ genitiveMonthDefaultFullName02,
+ genitiveMonthDefaultNarrowName02,
+ genitiveMonthID03,
+ genitiveMonthDefaultAbbrvName03,
+ genitiveMonthDefaultFullName03,
+ genitiveMonthDefaultNarrowName03,
+ genitiveMonthID04,
+ genitiveMonthDefaultAbbrvName04,
+ genitiveMonthDefaultFullName04,
+ genitiveMonthDefaultNarrowName04,
+ genitiveMonthID05,
+ genitiveMonthDefaultAbbrvName05,
+ genitiveMonthDefaultFullName05,
+ genitiveMonthDefaultNarrowName05,
+ genitiveMonthID06,
+ genitiveMonthDefaultAbbrvName06,
+ genitiveMonthDefaultFullName06,
+ genitiveMonthDefaultNarrowName06,
+ genitiveMonthID07,
+ genitiveMonthDefaultAbbrvName07,
+ genitiveMonthDefaultFullName07,
+ genitiveMonthDefaultNarrowName07,
+ genitiveMonthID08,
+ genitiveMonthDefaultAbbrvName08,
+ genitiveMonthDefaultFullName08,
+ genitiveMonthDefaultNarrowName08,
+ genitiveMonthID09,
+ genitiveMonthDefaultAbbrvName09,
+ genitiveMonthDefaultFullName09,
+ genitiveMonthDefaultNarrowName09,
+ genitiveMonthID010,
+ genitiveMonthDefaultAbbrvName010,
+ genitiveMonthDefaultFullName010,
+ genitiveMonthDefaultNarrowName010,
+ genitiveMonthID011,
+ genitiveMonthDefaultAbbrvName011,
+ genitiveMonthDefaultFullName011,
+ genitiveMonthDefaultNarrowName011,
+ partitiveMonthID00,
+ partitiveMonthDefaultAbbrvName00,
+ partitiveMonthDefaultFullName00,
+ partitiveMonthDefaultNarrowName00,
+ partitiveMonthID01,
+ partitiveMonthDefaultAbbrvName01,
+ partitiveMonthDefaultFullName01,
+ partitiveMonthDefaultNarrowName01,
+ partitiveMonthID02,
+ partitiveMonthDefaultAbbrvName02,
+ partitiveMonthDefaultFullName02,
+ partitiveMonthDefaultNarrowName02,
+ partitiveMonthID03,
+ partitiveMonthDefaultAbbrvName03,
+ partitiveMonthDefaultFullName03,
+ partitiveMonthDefaultNarrowName03,
+ partitiveMonthID04,
+ partitiveMonthDefaultAbbrvName04,
+ partitiveMonthDefaultFullName04,
+ partitiveMonthDefaultNarrowName04,
+ partitiveMonthID05,
+ partitiveMonthDefaultAbbrvName05,
+ partitiveMonthDefaultFullName05,
+ partitiveMonthDefaultNarrowName05,
+ partitiveMonthID06,
+ partitiveMonthDefaultAbbrvName06,
+ partitiveMonthDefaultFullName06,
+ partitiveMonthDefaultNarrowName06,
+ partitiveMonthID07,
+ partitiveMonthDefaultAbbrvName07,
+ partitiveMonthDefaultFullName07,
+ partitiveMonthDefaultNarrowName07,
+ partitiveMonthID08,
+ partitiveMonthDefaultAbbrvName08,
+ partitiveMonthDefaultFullName08,
+ partitiveMonthDefaultNarrowName08,
+ partitiveMonthID09,
+ partitiveMonthDefaultAbbrvName09,
+ partitiveMonthDefaultFullName09,
+ partitiveMonthDefaultNarrowName09,
+ partitiveMonthID010,
+ partitiveMonthDefaultAbbrvName010,
+ partitiveMonthDefaultFullName010,
+ partitiveMonthDefaultNarrowName010,
+ partitiveMonthID011,
+ partitiveMonthDefaultAbbrvName011,
+ partitiveMonthDefaultFullName011,
+ partitiveMonthDefaultNarrowName011,
+ eraID00,
+ eraDefaultAbbrvName00,
+ eraDefaultFullName00,
+ eraID01,
+ eraDefaultAbbrvName01,
+ eraDefaultFullName01,
+ startDayOfWeek0,
+ minimalDaysInFirstWeek0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_AU(sal_Int16& count)
+{
+ count = calendarsCount;
+ return (sal_Unicode**)calendars;
+}
+static const sal_Unicode defaultCurrency0[] = {1};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1};
+static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0};
+static const sal_Unicode currencyID0[] = {0x41, 0x55, 0x44, 0x0};
+static const sal_Unicode currencySymbol0[] = {0x24, 0x0};
+static const sal_Unicode bankSymbol0[] = {0x41, 0x55, 0x44, 0x0};
+static const sal_Unicode currencyName0[] = {0x41, 0x75, 0x73, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x0};
+static const sal_Unicode currencyDecimalPlaces0[] = {2};
+
+static const sal_Int16 currencyCount = 1;
+
+static const sal_Unicode* currencies[] = {
+ currencyID0,
+ currencySymbol0,
+ bankSymbol0,
+ currencyName0,
+ defaultCurrency0,
+ defaultCurrencyUsedInCompatibleFormatCodes0,
+ currencyDecimalPlaces0,
+ defaultCurrencyLegacyOnly0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_AU(sal_Int16& count)
+{
+ count = currencyCount;
+ return (sal_Unicode**)currencies;
+}
+extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_AU(sal_Int16& count)
+{
+ return getTransliterations_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_AU(sal_Int16& count)
+{
+ return getForbiddenCharacters_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_AU(sal_Int16& count)
+{
+ return getBreakIteratorRules_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_AU(sal_Int16& count)
+{
+ return getReservedWords_en_US(count);
+}
+// ---> ContinuousNumbering
+extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_AU(sal_Int16& nStyles, sal_Int16& nAttributes)
+{
+ return getContinuousNumberingLevels_en_US(nStyles, nAttributes);
+}
+// ---> OutlineNumbering
+extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_AU(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)
+{
+ return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes);
+}
+} // extern "C"
+
diff --git a/vcl/workben/localestub/localedata_en_BW.cxx b/vcl/workben/localestub/localedata_en_BW.cxx
new file mode 100644
index 000000000..b79b8eaa7
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_BW.cxx
@@ -0,0 +1,140 @@
+#include <sal/types.h>
+
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = {0x65, 0x6e, 0x0};
+static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0};
+static const sal_Unicode countryID[] = {0x42, 0x57, 0x0};
+static const sal_Unicode countryDefaultName[] = {0x42, 0x6f, 0x74, 0x73, 0x77, 0x61, 0x6e, 0x61, 0x0};
+static const sal_Unicode Variant[] = {0x0};
+
+static const sal_Unicode* LCInfoArray[] = {
+ langID,
+ langDefaultName,
+ countryID,
+ countryDefaultName,
+ Variant
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_BW(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCInfoArray;
+}
+extern sal_Unicode ** SAL_CALL getLocaleItem_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_BW(sal_Int16& count)
+{
+ return getLocaleItem_en_GB(count);
+}
+static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x50, 0x2d, 0x39, 0x38, 0x30, 0x39, 0x5d, 0x0};
+extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_GB(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to);
+SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_BW(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ to = replaceTo0;
+ const sal_Unicode* tmp;
+ return getAllFormats0_en_GB(count, from, tmp);
+}
+extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_BW(sal_Int16& count)
+{
+ return getDateAcceptancePatterns_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_BW(sal_Int16& count)
+{
+ return getCollatorImplementation_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getCollationOptions_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_BW(sal_Int16& count)
+{
+ return getCollationOptions_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getSearchOptions_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_BW(sal_Int16& count)
+{
+ return getSearchOptions_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_BW(sal_Int16& count)
+{
+ return getIndexAlgorithm_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_BW(sal_Int16& count)
+{
+ return getUnicodeScripts_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getFollowPageWords_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_BW(sal_Int16& count)
+{
+ return getFollowPageWords_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getAllCalendars_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_BW(sal_Int16& count)
+{
+ return getAllCalendars_en_GB(count);
+}
+static const sal_Unicode defaultCurrency0[] = {1};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1};
+static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0};
+static const sal_Unicode currencyID0[] = {0x42, 0x57, 0x50, 0x0};
+static const sal_Unicode currencySymbol0[] = {0x50, 0x0};
+static const sal_Unicode bankSymbol0[] = {0x42, 0x57, 0x50, 0x0};
+static const sal_Unicode currencyName0[] = {0x50, 0x75, 0x6c, 0x61, 0x0};
+static const sal_Unicode currencyDecimalPlaces0[] = {2};
+
+static const sal_Int16 currencyCount = 1;
+
+static const sal_Unicode* currencies[] = {
+ currencyID0,
+ currencySymbol0,
+ bankSymbol0,
+ currencyName0,
+ defaultCurrency0,
+ defaultCurrencyUsedInCompatibleFormatCodes0,
+ currencyDecimalPlaces0,
+ defaultCurrencyLegacyOnly0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_BW(sal_Int16& count)
+{
+ count = currencyCount;
+ return (sal_Unicode**)currencies;
+}
+extern sal_Unicode ** SAL_CALL getTransliterations_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_BW(sal_Int16& count)
+{
+ return getTransliterations_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_BW(sal_Int16& count)
+{
+ return getForbiddenCharacters_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_BW(sal_Int16& count)
+{
+ return getBreakIteratorRules_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getReservedWords_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_BW(sal_Int16& count)
+{
+ return getReservedWords_en_GB(count);
+}
+// ---> ContinuousNumbering
+extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_GB(sal_Int16& nStyles, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_BW(sal_Int16& nStyles, sal_Int16& nAttributes)
+{
+ return getContinuousNumberingLevels_en_GB(nStyles, nAttributes);
+}
+// ---> OutlineNumbering
+extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_GB(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_BW(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)
+{
+ return getOutlineNumberingLevels_en_GB(nStyles, nLevels, nAttributes);
+}
+} // extern "C"
+
diff --git a/vcl/workben/localestub/localedata_en_BZ.cxx b/vcl/workben/localestub/localedata_en_BZ.cxx
new file mode 100644
index 000000000..d8f15e4fe
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_BZ.cxx
@@ -0,0 +1,225 @@
+#include <sal/types.h>
+
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = {0x65, 0x6e, 0x0};
+static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0};
+static const sal_Unicode countryID[] = {0x42, 0x5a, 0x0};
+static const sal_Unicode countryDefaultName[] = {0x42, 0x65, 0x6c, 0x69, 0x7a, 0x65, 0x0};
+static const sal_Unicode Variant[] = {0x0};
+
+static const sal_Unicode* LCInfoArray[] = {
+ langID,
+ langDefaultName,
+ countryID,
+ countryDefaultName,
+ Variant
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_BZ(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCInfoArray;
+}
+
+
+static const sal_Unicode LC_CTYPE_Unoid[] = {0x0};
+static const sal_Unicode dateSeparator[] = {0x2f, 0x0};
+static const sal_Unicode thousandSeparator[] = {0x2c, 0x0};
+static const sal_Unicode decimalSeparator[] = {0x2e, 0x0};
+static const sal_Unicode timeSeparator[] = {0x3a, 0x0};
+static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0};
+static const sal_Unicode listSeparator[] = {0x3b, 0x0};
+static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x2c, 0x20, 0x0};
+static const sal_Unicode LongDateDaySeparator[] = {0x2c, 0x20, 0x0};
+static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0};
+static const sal_Unicode quotationStart[] = {0x2018, 0x0};
+static const sal_Unicode quotationEnd[] = {0x2019, 0x0};
+static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0};
+static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0};
+static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0};
+static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0};
+static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0};
+
+static const sal_Unicode* LCType[] = {
+ LC_CTYPE_Unoid,
+ dateSeparator,
+ thousandSeparator,
+ decimalSeparator,
+ timeSeparator,
+ time100SecSeparator,
+ listSeparator,
+ quotationStart,
+ quotationEnd,
+ doubleQuotationStart,
+ doubleQuotationEnd,
+ timeAM,
+ timePM,
+ measurementSystem,
+ LongDateDayOfWeekSeparator,
+ LongDateDaySeparator,
+ LongDateMonthSeparator,
+ LongDateYearSeparator
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_BZ(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCType;
+}
+static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x42, 0x5a, 0x24, 0x2d, 0x32, 0x38, 0x30, 0x39, 0x5d, 0x0};
+extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_US(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to);
+SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_BZ(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ to = replaceTo0;
+ const sal_Unicode* tmp;
+ return getAllFormats0_en_US(count, from, tmp);
+}
+extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_BZ(sal_Int16& count)
+{
+ return getDateAcceptancePatterns_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_BZ(sal_Int16& count)
+{
+ return getCollatorImplementation_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_BZ(sal_Int16& count)
+{
+ return getCollationOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_BZ(sal_Int16& count)
+{
+ return getSearchOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_BZ(sal_Int16& count)
+{
+ return getIndexAlgorithm_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_BZ(sal_Int16& count)
+{
+ return getUnicodeScripts_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_BZ(sal_Int16& count)
+{
+ return getFollowPageWords_en_US(count);
+}
+static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode defaultCalendar0[] = {1};
+static const sal_Unicode dayRef0[] = {0x72, 0x65, 0x66, 0x0};
+static const sal_Unicode dayRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthRef0[] = {0x72, 0x65, 0x66, 0x0};
+static const sal_Unicode monthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthRef0[] = {0x72, 0x65, 0x66, 0x0};
+static const sal_Unicode genitiveMonthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthRef0[] = {0x72, 0x65, 0x66, 0x0};
+static const sal_Unicode partitiveMonthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode eraRef0[] = {0x72, 0x65, 0x66, 0x0};
+static const sal_Unicode eraRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode startDayOfWeek0[] = {0x6d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode minimalDaysInFirstWeek0[] = {1};
+static const sal_Int16 calendarsCount = 1;
+
+static const sal_Unicode nbOfDays[] = {0};
+static const sal_Unicode nbOfMonths[] = {0};
+static const sal_Unicode nbOfGenitiveMonths[] = {0};
+static const sal_Unicode nbOfPartitiveMonths[] = {0};
+static const sal_Unicode nbOfEras[] = {0};
+static const sal_Unicode* calendars[] = {
+ nbOfDays,
+ nbOfMonths,
+ nbOfGenitiveMonths,
+ nbOfPartitiveMonths,
+ nbOfEras,
+ calendarID0,
+ defaultCalendar0,
+ dayRef0,
+ dayRefName0,
+ monthRef0,
+ monthRefName0,
+ genitiveMonthRef0,
+ genitiveMonthRefName0,
+ partitiveMonthRef0,
+ partitiveMonthRefName0,
+ eraRef0,
+ eraRefName0,
+ startDayOfWeek0,
+ minimalDaysInFirstWeek0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_BZ(sal_Int16& count)
+{
+ count = calendarsCount;
+ return (sal_Unicode**)calendars;
+}
+static const sal_Unicode defaultCurrency0[] = {1};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1};
+static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0};
+static const sal_Unicode currencyID0[] = {0x42, 0x5a, 0x44, 0x0};
+static const sal_Unicode currencySymbol0[] = {0x42, 0x5a, 0x24, 0x0};
+static const sal_Unicode bankSymbol0[] = {0x42, 0x5a, 0x44, 0x0};
+static const sal_Unicode currencyName0[] = {0x42, 0x65, 0x6c, 0x69, 0x7a, 0x65, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x0};
+static const sal_Unicode currencyDecimalPlaces0[] = {2};
+
+static const sal_Int16 currencyCount = 1;
+
+static const sal_Unicode* currencies[] = {
+ currencyID0,
+ currencySymbol0,
+ bankSymbol0,
+ currencyName0,
+ defaultCurrency0,
+ defaultCurrencyUsedInCompatibleFormatCodes0,
+ currencyDecimalPlaces0,
+ defaultCurrencyLegacyOnly0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_BZ(sal_Int16& count)
+{
+ count = currencyCount;
+ return (sal_Unicode**)currencies;
+}
+extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_BZ(sal_Int16& count)
+{
+ return getTransliterations_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_BZ(sal_Int16& count)
+{
+ return getForbiddenCharacters_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_BZ(sal_Int16& count)
+{
+ return getBreakIteratorRules_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_BZ(sal_Int16& count)
+{
+ return getReservedWords_en_US(count);
+}
+// ---> ContinuousNumbering
+extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_BZ(sal_Int16& nStyles, sal_Int16& nAttributes)
+{
+ return getContinuousNumberingLevels_en_US(nStyles, nAttributes);
+}
+// ---> OutlineNumbering
+extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_BZ(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)
+{
+ return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes);
+}
+} // extern "C"
+
diff --git a/vcl/workben/localestub/localedata_en_CA.cxx b/vcl/workben/localestub/localedata_en_CA.cxx
new file mode 100644
index 000000000..5d7270595
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_CA.cxx
@@ -0,0 +1,929 @@
+#include <sal/types.h>
+
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = {0x65, 0x6e, 0x0};
+static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0};
+static const sal_Unicode countryID[] = {0x43, 0x41, 0x0};
+static const sal_Unicode countryDefaultName[] = {0x43, 0x61, 0x6e, 0x61, 0x64, 0x61, 0x0};
+static const sal_Unicode Variant[] = {0x0};
+
+static const sal_Unicode* LCInfoArray[] = {
+ langID,
+ langDefaultName,
+ countryID,
+ countryDefaultName,
+ Variant
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_CA(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCInfoArray;
+}
+
+
+static const sal_Unicode LC_CTYPE_Unoid[] = {0x0};
+static const sal_Unicode dateSeparator[] = {0x2d, 0x0};
+static const sal_Unicode thousandSeparator[] = {0x2c, 0x0};
+static const sal_Unicode decimalSeparator[] = {0x2e, 0x0};
+static const sal_Unicode timeSeparator[] = {0x3a, 0x0};
+static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0};
+static const sal_Unicode listSeparator[] = {0x3b, 0x0};
+static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x2c, 0x20, 0x0};
+static const sal_Unicode LongDateDaySeparator[] = {0x2c, 0x20, 0x0};
+static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0};
+static const sal_Unicode quotationStart[] = {0x2018, 0x0};
+static const sal_Unicode quotationEnd[] = {0x2019, 0x0};
+static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0};
+static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0};
+static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0};
+static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0};
+static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0};
+
+static const sal_Unicode* LCType[] = {
+ LC_CTYPE_Unoid,
+ dateSeparator,
+ thousandSeparator,
+ decimalSeparator,
+ timeSeparator,
+ time100SecSeparator,
+ listSeparator,
+ quotationStart,
+ quotationEnd,
+ doubleQuotationStart,
+ doubleQuotationEnd,
+ timeAM,
+ timePM,
+ measurementSystem,
+ LongDateDayOfWeekSeparator,
+ LongDateDaySeparator,
+ LongDateMonthSeparator,
+ LongDateYearSeparator
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_CA(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCType;
+}
+static const sal_Unicode replaceFrom0[] = {0x0};
+static const sal_Unicode replaceTo0[] = {0x0};
+static const sal_Unicode FormatKey0[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement0[] = {1};
+static const sal_Unicode FormatType0[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage0[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex0[] = {0};
+static const sal_Unicode FormatCode0[] = {0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0};
+static const sal_Unicode FormatDefaultName0[] = {0x0};
+static const sal_Unicode FormatKey1[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement1[] = {1};
+static const sal_Unicode FormatType1[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage1[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex1[] = {1};
+static const sal_Unicode FormatCode1[] = {0x30, 0x0};
+static const sal_Unicode FormatDefaultName1[] = {0x0};
+static const sal_Unicode FormatKey2[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement2[] = {0};
+static const sal_Unicode FormatType2[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage2[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex2[] = {2};
+static const sal_Unicode FormatCode2[] = {0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName2[] = {0x0};
+static const sal_Unicode FormatKey3[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement3[] = {0};
+static const sal_Unicode FormatType3[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage3[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex3[] = {3};
+static const sal_Unicode FormatCode3[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName3[] = {0x0};
+static const sal_Unicode FormatKey4[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement4[] = {0};
+static const sal_Unicode FormatType4[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage4[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex4[] = {4};
+static const sal_Unicode FormatCode4[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName4[] = {0x0};
+static const sal_Unicode FormatKey5[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement5[] = {0};
+static const sal_Unicode FormatType5[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage5[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex5[] = {5};
+static const sal_Unicode FormatCode5[] = {0x23, 0x2c, 0x23, 0x23, 0x23, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName5[] = {0x0};
+static const sal_Unicode FormatKey6[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement6[] = {0};
+static const sal_Unicode FormatType6[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage6[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex6[] = {70};
+static const sal_Unicode FormatCode6[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x29, 0x0};
+static const sal_Unicode FormatDefaultName6[] = {0x0};
+static const sal_Unicode FormatKey7[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement7[] = {0};
+static const sal_Unicode FormatType7[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage7[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex7[] = {71};
+static const sal_Unicode FormatCode7[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x29, 0x0};
+static const sal_Unicode FormatDefaultName7[] = {0x0};
+static const sal_Unicode FormatKey8[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement8[] = {0};
+static const sal_Unicode FormatType8[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage8[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex8[] = {6};
+static const sal_Unicode FormatCode8[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName8[] = {0x0};
+static const sal_Unicode FormatKey9[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement9[] = {1};
+static const sal_Unicode FormatType9[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage9[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex9[] = {7};
+static const sal_Unicode FormatCode9[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName9[] = {0x0};
+static const sal_Unicode FormatKey10[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement10[] = {0};
+static const sal_Unicode FormatType10[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage10[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex10[] = {78};
+static const sal_Unicode FormatCode10[] = {0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName10[] = {0x0};
+static const sal_Unicode FormatKey11[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement11[] = {1};
+static const sal_Unicode FormatType11[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage11[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex11[] = {8};
+static const sal_Unicode FormatCode11[] = {0x30, 0x25, 0x0};
+static const sal_Unicode FormatDefaultName11[] = {0x0};
+static const sal_Unicode FormatKey12[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement12[] = {1};
+static const sal_Unicode FormatType12[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage12[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex12[] = {9};
+static const sal_Unicode FormatCode12[] = {0x30, 0x2e, 0x30, 0x30, 0x25, 0x0};
+static const sal_Unicode FormatDefaultName12[] = {0x0};
+static const sal_Unicode FormatKey13[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement13[] = {1};
+static const sal_Unicode FormatType13[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage13[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex13[] = {12};
+static const sal_Unicode FormatCode13[] = {0x5b, 0x24, 0x24, 0x2d, 0x31, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x2d, 0x5b, 0x24, 0x24, 0x2d, 0x31, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName13[] = {0x0};
+static const sal_Unicode FormatKey14[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement14[] = {0};
+static const sal_Unicode FormatType14[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage14[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex14[] = {13};
+static const sal_Unicode FormatCode14[] = {0x5b, 0x24, 0x24, 0x2d, 0x31, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x2d, 0x5b, 0x24, 0x24, 0x2d, 0x31, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName14[] = {0x0};
+static const sal_Unicode FormatKey15[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement15[] = {0};
+static const sal_Unicode FormatType15[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage15[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex15[] = {14};
+static const sal_Unicode FormatCode15[] = {0x5b, 0x24, 0x24, 0x2d, 0x31, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x24, 0x24, 0x2d, 0x31, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName15[] = {0x0};
+static const sal_Unicode FormatKey16[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement16[] = {1};
+static const sal_Unicode FormatType16[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage16[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex16[] = {15};
+static const sal_Unicode FormatCode16[] = {0x5b, 0x24, 0x24, 0x2d, 0x31, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x24, 0x24, 0x2d, 0x31, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName16[] = {0x0};
+static const sal_Unicode FormatKey17[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement17[] = {0};
+static const sal_Unicode FormatType17[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage17[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex17[] = {16};
+static const sal_Unicode FormatCode17[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x20, 0x43, 0x43, 0x43, 0x0};
+static const sal_Unicode FormatDefaultName17[] = {0x0};
+static const sal_Unicode FormatKey18[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement18[] = {0};
+static const sal_Unicode FormatType18[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage18[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex18[] = {17};
+static const sal_Unicode FormatCode18[] = {0x5b, 0x24, 0x24, 0x2d, 0x31, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x24, 0x24, 0x2d, 0x31, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x0};
+static const sal_Unicode FormatDefaultName18[] = {0x0};
+static const sal_Unicode FormatKey19[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement19[] = {1};
+static const sal_Unicode FormatType19[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage19[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex19[] = {18};
+static const sal_Unicode FormatCode19[] = {0x59, 0x59, 0x2d, 0x4d, 0x2d, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName19[] = {0x0};
+static const sal_Unicode FormatKey20[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x39, 0x0};
+static const sal_Unicode defaultFormatElement20[] = {1};
+static const sal_Unicode FormatType20[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage20[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex20[] = {19};
+static const sal_Unicode FormatCode20[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName20[] = {0x0};
+static const sal_Unicode FormatKey21[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement21[] = {0};
+static const sal_Unicode FormatType21[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage21[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex21[] = {20};
+static const sal_Unicode FormatCode21[] = {0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName21[] = {0x0};
+static const sal_Unicode FormatKey22[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement22[] = {1};
+static const sal_Unicode FormatType22[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage22[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex22[] = {21};
+static const sal_Unicode FormatCode22[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName22[] = {0x0};
+static const sal_Unicode FormatKey23[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x30, 0x0};
+static const sal_Unicode defaultFormatElement23[] = {0};
+static const sal_Unicode FormatType23[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage23[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex23[] = {22};
+static const sal_Unicode FormatCode23[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName23[] = {0x0};
+static const sal_Unicode FormatKey24[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement24[] = {0};
+static const sal_Unicode FormatType24[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage24[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex24[] = {23};
+static const sal_Unicode FormatCode24[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName24[] = {0x0};
+static const sal_Unicode FormatKey25[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement25[] = {0};
+static const sal_Unicode FormatType25[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage25[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex25[] = {24};
+static const sal_Unicode FormatCode25[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x2e, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName25[] = {0x0};
+static const sal_Unicode FormatKey26[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement26[] = {0};
+static const sal_Unicode FormatType26[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage26[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex26[] = {25};
+static const sal_Unicode FormatCode26[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName26[] = {0x0};
+static const sal_Unicode FormatKey27[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement27[] = {0};
+static const sal_Unicode FormatType27[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage27[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex27[] = {26};
+static const sal_Unicode FormatCode27[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName27[] = {0x0};
+static const sal_Unicode FormatKey28[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement28[] = {0};
+static const sal_Unicode FormatType28[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage28[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex28[] = {27};
+static const sal_Unicode FormatCode28[] = {0x4e, 0x4e, 0x2c, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName28[] = {0x0};
+static const sal_Unicode FormatKey29[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement29[] = {0};
+static const sal_Unicode FormatType29[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage29[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex29[] = {28};
+static const sal_Unicode FormatCode29[] = {0x4e, 0x4e, 0x20, 0x44, 0x44, 0x2d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName29[] = {0x0};
+static const sal_Unicode FormatKey30[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement30[] = {0};
+static const sal_Unicode FormatType30[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage30[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex30[] = {29};
+static const sal_Unicode FormatCode30[] = {0x4e, 0x4e, 0x2c, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName30[] = {0x0};
+static const sal_Unicode FormatKey31[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement31[] = {0};
+static const sal_Unicode FormatType31[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage31[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex31[] = {30};
+static const sal_Unicode FormatCode31[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName31[] = {0x0};
+static const sal_Unicode FormatKey32[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement32[] = {0};
+static const sal_Unicode FormatType32[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage32[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex32[] = {31};
+static const sal_Unicode FormatCode32[] = {0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName32[] = {0x0};
+static const sal_Unicode FormatKey33[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x39, 0x0};
+static const sal_Unicode defaultFormatElement33[] = {0};
+static const sal_Unicode FormatType33[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage33[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex33[] = {32};
+static const sal_Unicode FormatCode33[] = {0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName33[] = {0x0};
+static const sal_Unicode FormatKey34[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x30, 0x0};
+static const sal_Unicode defaultFormatElement34[] = {0};
+static const sal_Unicode FormatType34[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage34[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex34[] = {33};
+static const sal_Unicode FormatCode34[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName34[] = {0x49, 0x53, 0x4f, 0x20, 0x38, 0x36, 0x30, 0x31, 0x0};
+static const sal_Unicode FormatKey35[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement35[] = {0};
+static const sal_Unicode FormatType35[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage35[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex35[] = {34};
+static const sal_Unicode FormatCode35[] = {0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName35[] = {0x0};
+static const sal_Unicode FormatKey36[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement36[] = {0};
+static const sal_Unicode FormatType36[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage36[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex36[] = {35};
+static const sal_Unicode FormatCode36[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName36[] = {0x0};
+static const sal_Unicode FormatKey37[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement37[] = {0};
+static const sal_Unicode FormatType37[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage37[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex37[] = {36};
+static const sal_Unicode FormatCode37[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName37[] = {0x0};
+static const sal_Unicode FormatKey38[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement38[] = {0};
+static const sal_Unicode FormatType38[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage38[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex38[] = {37};
+static const sal_Unicode FormatCode38[] = {0x51, 0x51, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName38[] = {0x0};
+static const sal_Unicode FormatKey39[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement39[] = {0};
+static const sal_Unicode FormatType39[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage39[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex39[] = {38};
+static const sal_Unicode FormatCode39[] = {0x57, 0x57, 0x0};
+static const sal_Unicode FormatDefaultName39[] = {0x0};
+static const sal_Unicode FormatKey40[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement40[] = {1};
+static const sal_Unicode FormatType40[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage40[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex40[] = {39};
+static const sal_Unicode FormatCode40[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName40[] = {0x0};
+static const sal_Unicode FormatKey41[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement41[] = {1};
+static const sal_Unicode FormatType41[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage41[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex41[] = {40};
+static const sal_Unicode FormatCode41[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName41[] = {0x0};
+static const sal_Unicode FormatKey42[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement42[] = {0};
+static const sal_Unicode FormatType42[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage42[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex42[] = {41};
+static const sal_Unicode FormatCode42[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName42[] = {0x0};
+static const sal_Unicode FormatKey43[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement43[] = {0};
+static const sal_Unicode FormatType43[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage43[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex43[] = {42};
+static const sal_Unicode FormatCode43[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName43[] = {0x0};
+static const sal_Unicode FormatKey44[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement44[] = {0};
+static const sal_Unicode FormatType44[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage44[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex44[] = {43};
+static const sal_Unicode FormatCode44[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName44[] = {0x0};
+static const sal_Unicode FormatKey45[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement45[] = {0};
+static const sal_Unicode FormatType45[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage45[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex45[] = {44};
+static const sal_Unicode FormatCode45[] = {0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName45[] = {0x0};
+static const sal_Unicode FormatKey46[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement46[] = {0};
+static const sal_Unicode FormatType46[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage46[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex46[] = {45};
+static const sal_Unicode FormatCode46[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName46[] = {0x0};
+static const sal_Unicode FormatKey47[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement47[] = {1};
+static const sal_Unicode FormatType47[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage47[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex47[] = {46};
+static const sal_Unicode FormatCode47[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName47[] = {0x0};
+static const sal_Unicode FormatKey48[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement48[] = {0};
+static const sal_Unicode FormatType48[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage48[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex48[] = {47};
+static const sal_Unicode FormatCode48[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName48[] = {0x0};
+
+static const sal_Int16 FormatElementsCount0 = 49;
+static const sal_Unicode* FormatElementsArray0[] = {
+ FormatCode0,
+ FormatDefaultName0,
+ FormatKey0,
+ FormatType0,
+ FormatUsage0,
+ Formatindex0,
+ defaultFormatElement0,
+ FormatCode1,
+ FormatDefaultName1,
+ FormatKey1,
+ FormatType1,
+ FormatUsage1,
+ Formatindex1,
+ defaultFormatElement1,
+ FormatCode2,
+ FormatDefaultName2,
+ FormatKey2,
+ FormatType2,
+ FormatUsage2,
+ Formatindex2,
+ defaultFormatElement2,
+ FormatCode3,
+ FormatDefaultName3,
+ FormatKey3,
+ FormatType3,
+ FormatUsage3,
+ Formatindex3,
+ defaultFormatElement3,
+ FormatCode4,
+ FormatDefaultName4,
+ FormatKey4,
+ FormatType4,
+ FormatUsage4,
+ Formatindex4,
+ defaultFormatElement4,
+ FormatCode5,
+ FormatDefaultName5,
+ FormatKey5,
+ FormatType5,
+ FormatUsage5,
+ Formatindex5,
+ defaultFormatElement5,
+ FormatCode6,
+ FormatDefaultName6,
+ FormatKey6,
+ FormatType6,
+ FormatUsage6,
+ Formatindex6,
+ defaultFormatElement6,
+ FormatCode7,
+ FormatDefaultName7,
+ FormatKey7,
+ FormatType7,
+ FormatUsage7,
+ Formatindex7,
+ defaultFormatElement7,
+ FormatCode8,
+ FormatDefaultName8,
+ FormatKey8,
+ FormatType8,
+ FormatUsage8,
+ Formatindex8,
+ defaultFormatElement8,
+ FormatCode9,
+ FormatDefaultName9,
+ FormatKey9,
+ FormatType9,
+ FormatUsage9,
+ Formatindex9,
+ defaultFormatElement9,
+ FormatCode10,
+ FormatDefaultName10,
+ FormatKey10,
+ FormatType10,
+ FormatUsage10,
+ Formatindex10,
+ defaultFormatElement10,
+ FormatCode11,
+ FormatDefaultName11,
+ FormatKey11,
+ FormatType11,
+ FormatUsage11,
+ Formatindex11,
+ defaultFormatElement11,
+ FormatCode12,
+ FormatDefaultName12,
+ FormatKey12,
+ FormatType12,
+ FormatUsage12,
+ Formatindex12,
+ defaultFormatElement12,
+ FormatCode13,
+ FormatDefaultName13,
+ FormatKey13,
+ FormatType13,
+ FormatUsage13,
+ Formatindex13,
+ defaultFormatElement13,
+ FormatCode14,
+ FormatDefaultName14,
+ FormatKey14,
+ FormatType14,
+ FormatUsage14,
+ Formatindex14,
+ defaultFormatElement14,
+ FormatCode15,
+ FormatDefaultName15,
+ FormatKey15,
+ FormatType15,
+ FormatUsage15,
+ Formatindex15,
+ defaultFormatElement15,
+ FormatCode16,
+ FormatDefaultName16,
+ FormatKey16,
+ FormatType16,
+ FormatUsage16,
+ Formatindex16,
+ defaultFormatElement16,
+ FormatCode17,
+ FormatDefaultName17,
+ FormatKey17,
+ FormatType17,
+ FormatUsage17,
+ Formatindex17,
+ defaultFormatElement17,
+ FormatCode18,
+ FormatDefaultName18,
+ FormatKey18,
+ FormatType18,
+ FormatUsage18,
+ Formatindex18,
+ defaultFormatElement18,
+ FormatCode19,
+ FormatDefaultName19,
+ FormatKey19,
+ FormatType19,
+ FormatUsage19,
+ Formatindex19,
+ defaultFormatElement19,
+ FormatCode20,
+ FormatDefaultName20,
+ FormatKey20,
+ FormatType20,
+ FormatUsage20,
+ Formatindex20,
+ defaultFormatElement20,
+ FormatCode21,
+ FormatDefaultName21,
+ FormatKey21,
+ FormatType21,
+ FormatUsage21,
+ Formatindex21,
+ defaultFormatElement21,
+ FormatCode22,
+ FormatDefaultName22,
+ FormatKey22,
+ FormatType22,
+ FormatUsage22,
+ Formatindex22,
+ defaultFormatElement22,
+ FormatCode23,
+ FormatDefaultName23,
+ FormatKey23,
+ FormatType23,
+ FormatUsage23,
+ Formatindex23,
+ defaultFormatElement23,
+ FormatCode24,
+ FormatDefaultName24,
+ FormatKey24,
+ FormatType24,
+ FormatUsage24,
+ Formatindex24,
+ defaultFormatElement24,
+ FormatCode25,
+ FormatDefaultName25,
+ FormatKey25,
+ FormatType25,
+ FormatUsage25,
+ Formatindex25,
+ defaultFormatElement25,
+ FormatCode26,
+ FormatDefaultName26,
+ FormatKey26,
+ FormatType26,
+ FormatUsage26,
+ Formatindex26,
+ defaultFormatElement26,
+ FormatCode27,
+ FormatDefaultName27,
+ FormatKey27,
+ FormatType27,
+ FormatUsage27,
+ Formatindex27,
+ defaultFormatElement27,
+ FormatCode28,
+ FormatDefaultName28,
+ FormatKey28,
+ FormatType28,
+ FormatUsage28,
+ Formatindex28,
+ defaultFormatElement28,
+ FormatCode29,
+ FormatDefaultName29,
+ FormatKey29,
+ FormatType29,
+ FormatUsage29,
+ Formatindex29,
+ defaultFormatElement29,
+ FormatCode30,
+ FormatDefaultName30,
+ FormatKey30,
+ FormatType30,
+ FormatUsage30,
+ Formatindex30,
+ defaultFormatElement30,
+ FormatCode31,
+ FormatDefaultName31,
+ FormatKey31,
+ FormatType31,
+ FormatUsage31,
+ Formatindex31,
+ defaultFormatElement31,
+ FormatCode32,
+ FormatDefaultName32,
+ FormatKey32,
+ FormatType32,
+ FormatUsage32,
+ Formatindex32,
+ defaultFormatElement32,
+ FormatCode33,
+ FormatDefaultName33,
+ FormatKey33,
+ FormatType33,
+ FormatUsage33,
+ Formatindex33,
+ defaultFormatElement33,
+ FormatCode34,
+ FormatDefaultName34,
+ FormatKey34,
+ FormatType34,
+ FormatUsage34,
+ Formatindex34,
+ defaultFormatElement34,
+ FormatCode35,
+ FormatDefaultName35,
+ FormatKey35,
+ FormatType35,
+ FormatUsage35,
+ Formatindex35,
+ defaultFormatElement35,
+ FormatCode36,
+ FormatDefaultName36,
+ FormatKey36,
+ FormatType36,
+ FormatUsage36,
+ Formatindex36,
+ defaultFormatElement36,
+ FormatCode37,
+ FormatDefaultName37,
+ FormatKey37,
+ FormatType37,
+ FormatUsage37,
+ Formatindex37,
+ defaultFormatElement37,
+ FormatCode38,
+ FormatDefaultName38,
+ FormatKey38,
+ FormatType38,
+ FormatUsage38,
+ Formatindex38,
+ defaultFormatElement38,
+ FormatCode39,
+ FormatDefaultName39,
+ FormatKey39,
+ FormatType39,
+ FormatUsage39,
+ Formatindex39,
+ defaultFormatElement39,
+ FormatCode40,
+ FormatDefaultName40,
+ FormatKey40,
+ FormatType40,
+ FormatUsage40,
+ Formatindex40,
+ defaultFormatElement40,
+ FormatCode41,
+ FormatDefaultName41,
+ FormatKey41,
+ FormatType41,
+ FormatUsage41,
+ Formatindex41,
+ defaultFormatElement41,
+ FormatCode42,
+ FormatDefaultName42,
+ FormatKey42,
+ FormatType42,
+ FormatUsage42,
+ Formatindex42,
+ defaultFormatElement42,
+ FormatCode43,
+ FormatDefaultName43,
+ FormatKey43,
+ FormatType43,
+ FormatUsage43,
+ Formatindex43,
+ defaultFormatElement43,
+ FormatCode44,
+ FormatDefaultName44,
+ FormatKey44,
+ FormatType44,
+ FormatUsage44,
+ Formatindex44,
+ defaultFormatElement44,
+ FormatCode45,
+ FormatDefaultName45,
+ FormatKey45,
+ FormatType45,
+ FormatUsage45,
+ Formatindex45,
+ defaultFormatElement45,
+ FormatCode46,
+ FormatDefaultName46,
+ FormatKey46,
+ FormatType46,
+ FormatUsage46,
+ Formatindex46,
+ defaultFormatElement46,
+ FormatCode47,
+ FormatDefaultName47,
+ FormatKey47,
+ FormatType47,
+ FormatUsage47,
+ Formatindex47,
+ defaultFormatElement47,
+ FormatCode48,
+ FormatDefaultName48,
+ FormatKey48,
+ FormatType48,
+ FormatUsage48,
+ Formatindex48,
+ defaultFormatElement48,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_CA(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ count = FormatElementsCount0;
+ from = replaceFrom0;
+ to = replaceTo0;
+ return (sal_Unicode**)FormatElementsArray0;
+}
+static const sal_Unicode DateAcceptancePattern0[] = {0x59, 0x2d, 0x4d, 0x2d, 0x44, 0x0};
+static const sal_Unicode DateAcceptancePattern1[] = {0x4d, 0x2d, 0x44, 0x0};
+static const sal_Unicode DateAcceptancePattern2[] = {0x4d, 0x2f, 0x44, 0x2f, 0x59, 0x0};
+static const sal_Unicode DateAcceptancePattern3[] = {0x4d, 0x2f, 0x44, 0x0};
+static const sal_Int16 DateAcceptancePatternsCount = 4;
+static const sal_Unicode* DateAcceptancePatternsArray[] = {
+ DateAcceptancePattern0,
+ DateAcceptancePattern1,
+ DateAcceptancePattern2,
+ DateAcceptancePattern3,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_CA(sal_Int16& count)
+{
+ count = DateAcceptancePatternsCount;
+ return (sal_Unicode**)DateAcceptancePatternsArray;
+}
+extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_CA(sal_Int16& count)
+{
+ return getCollatorImplementation_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_CA(sal_Int16& count)
+{
+ return getCollationOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_CA(sal_Int16& count)
+{
+ return getSearchOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_CA(sal_Int16& count)
+{
+ return getIndexAlgorithm_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_CA(sal_Int16& count)
+{
+ return getUnicodeScripts_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_CA(sal_Int16& count)
+{
+ return getFollowPageWords_en_US(count);
+}
+static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode defaultCalendar0[] = {1};
+static const sal_Unicode dayRef0[] = {0x72, 0x65, 0x66, 0x0};
+static const sal_Unicode dayRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthRef0[] = {0x72, 0x65, 0x66, 0x0};
+static const sal_Unicode monthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthRef0[] = {0x72, 0x65, 0x66, 0x0};
+static const sal_Unicode genitiveMonthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthRef0[] = {0x72, 0x65, 0x66, 0x0};
+static const sal_Unicode partitiveMonthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode eraRef0[] = {0x72, 0x65, 0x66, 0x0};
+static const sal_Unicode eraRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode minimalDaysInFirstWeek0[] = {4};
+static const sal_Int16 calendarsCount = 1;
+
+static const sal_Unicode nbOfDays[] = {0};
+static const sal_Unicode nbOfMonths[] = {0};
+static const sal_Unicode nbOfGenitiveMonths[] = {0};
+static const sal_Unicode nbOfPartitiveMonths[] = {0};
+static const sal_Unicode nbOfEras[] = {0};
+static const sal_Unicode* calendars[] = {
+ nbOfDays,
+ nbOfMonths,
+ nbOfGenitiveMonths,
+ nbOfPartitiveMonths,
+ nbOfEras,
+ calendarID0,
+ defaultCalendar0,
+ dayRef0,
+ dayRefName0,
+ monthRef0,
+ monthRefName0,
+ genitiveMonthRef0,
+ genitiveMonthRefName0,
+ partitiveMonthRef0,
+ partitiveMonthRefName0,
+ eraRef0,
+ eraRefName0,
+ startDayOfWeek0,
+ minimalDaysInFirstWeek0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_CA(sal_Int16& count)
+{
+ count = calendarsCount;
+ return (sal_Unicode**)calendars;
+}
+static const sal_Unicode defaultCurrency0[] = {1};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1};
+static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0};
+static const sal_Unicode currencyID0[] = {0x43, 0x41, 0x44, 0x0};
+static const sal_Unicode currencySymbol0[] = {0x24, 0x0};
+static const sal_Unicode bankSymbol0[] = {0x43, 0x41, 0x44, 0x0};
+static const sal_Unicode currencyName0[] = {0x43, 0x61, 0x6e, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x0};
+static const sal_Unicode currencyDecimalPlaces0[] = {2};
+
+static const sal_Int16 currencyCount = 1;
+
+static const sal_Unicode* currencies[] = {
+ currencyID0,
+ currencySymbol0,
+ bankSymbol0,
+ currencyName0,
+ defaultCurrency0,
+ defaultCurrencyUsedInCompatibleFormatCodes0,
+ currencyDecimalPlaces0,
+ defaultCurrencyLegacyOnly0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_CA(sal_Int16& count)
+{
+ count = currencyCount;
+ return (sal_Unicode**)currencies;
+}
+extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_CA(sal_Int16& count)
+{
+ return getTransliterations_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_CA(sal_Int16& count)
+{
+ return getForbiddenCharacters_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_CA(sal_Int16& count)
+{
+ return getBreakIteratorRules_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_CA(sal_Int16& count)
+{
+ return getReservedWords_en_US(count);
+}
+// ---> ContinuousNumbering
+extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_CA(sal_Int16& nStyles, sal_Int16& nAttributes)
+{
+ return getContinuousNumberingLevels_en_US(nStyles, nAttributes);
+}
+// ---> OutlineNumbering
+extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_CA(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)
+{
+ return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes);
+}
+} // extern "C"
+
diff --git a/vcl/workben/localestub/localedata_en_GB.cxx b/vcl/workben/localestub/localedata_en_GB.cxx
new file mode 100644
index 000000000..4aea47251
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_GB.cxx
@@ -0,0 +1,912 @@
+#include <sal/types.h>
+
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = {0x65, 0x6e, 0x0};
+static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0};
+static const sal_Unicode countryID[] = {0x47, 0x42, 0x0};
+static const sal_Unicode countryDefaultName[] = {0x55, 0x6e, 0x69, 0x74, 0x65, 0x64, 0x20, 0x4b, 0x69, 0x6e, 0x67, 0x64, 0x6f, 0x6d, 0x0};
+static const sal_Unicode Variant[] = {0x0};
+
+static const sal_Unicode* LCInfoArray[] = {
+ langID,
+ langDefaultName,
+ countryID,
+ countryDefaultName,
+ Variant
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_GB(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCInfoArray;
+}
+
+
+static const sal_Unicode LC_CTYPE_Unoid[] = {0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x0};
+static const sal_Unicode dateSeparator[] = {0x2f, 0x0};
+static const sal_Unicode thousandSeparator[] = {0x2c, 0x0};
+static const sal_Unicode decimalSeparator[] = {0x2e, 0x0};
+static const sal_Unicode timeSeparator[] = {0x3a, 0x0};
+static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0};
+static const sal_Unicode listSeparator[] = {0x3b, 0x0};
+static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateDaySeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0};
+static const sal_Unicode quotationStart[] = {0x2018, 0x0};
+static const sal_Unicode quotationEnd[] = {0x2019, 0x0};
+static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0};
+static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0};
+static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0};
+static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0};
+static const sal_Unicode measurementSystem[] = {0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0};
+
+static const sal_Unicode* LCType[] = {
+ LC_CTYPE_Unoid,
+ dateSeparator,
+ thousandSeparator,
+ decimalSeparator,
+ timeSeparator,
+ time100SecSeparator,
+ listSeparator,
+ quotationStart,
+ quotationEnd,
+ doubleQuotationStart,
+ doubleQuotationEnd,
+ timeAM,
+ timePM,
+ measurementSystem,
+ LongDateDayOfWeekSeparator,
+ LongDateDaySeparator,
+ LongDateMonthSeparator,
+ LongDateYearSeparator
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_GB(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCType;
+}
+static const sal_Unicode replaceFrom0[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x0};
+static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0xa3, 0x2d, 0x38, 0x30, 0x39, 0x5d, 0x0};
+static const sal_Unicode FormatKey0[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement0[] = {1};
+static const sal_Unicode FormatType0[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage0[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex0[] = {18};
+static const sal_Unicode FormatCode0[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName0[] = {0x0};
+static const sal_Unicode FormatKey1[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement1[] = {0};
+static const sal_Unicode FormatType1[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage1[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex1[] = {28};
+static const sal_Unicode FormatCode1[] = {0x4e, 0x4e, 0x20, 0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName1[] = {0x0};
+static const sal_Unicode FormatKey2[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement2[] = {0};
+static const sal_Unicode FormatType2[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage2[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex2[] = {34};
+static const sal_Unicode FormatCode2[] = {0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName2[] = {0x0};
+static const sal_Unicode FormatKey3[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement3[] = {0};
+static const sal_Unicode FormatType3[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage3[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex3[] = {35};
+static const sal_Unicode FormatCode3[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName3[] = {0x0};
+static const sal_Unicode FormatKey4[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement4[] = {0};
+static const sal_Unicode FormatType4[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage4[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex4[] = {36};
+static const sal_Unicode FormatCode4[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName4[] = {0x0};
+static const sal_Unicode FormatKey5[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement5[] = {0};
+static const sal_Unicode FormatType5[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage5[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex5[] = {37};
+static const sal_Unicode FormatCode5[] = {0x51, 0x51, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName5[] = {0x0};
+static const sal_Unicode FormatKey6[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement6[] = {0};
+static const sal_Unicode FormatType6[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage6[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex6[] = {21};
+static const sal_Unicode FormatCode6[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName6[] = {0x0};
+static const sal_Unicode FormatKey7[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement7[] = {1};
+static const sal_Unicode FormatType7[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage7[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex7[] = {20};
+static const sal_Unicode FormatCode7[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName7[] = {0x0};
+static const sal_Unicode FormatKey8[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x39, 0x0};
+static const sal_Unicode defaultFormatElement8[] = {1};
+static const sal_Unicode FormatType8[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage8[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex8[] = {19};
+static const sal_Unicode FormatCode8[] = {0x44, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName8[] = {0x0};
+static const sal_Unicode FormatKey9[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x30, 0x0};
+static const sal_Unicode defaultFormatElement9[] = {0};
+static const sal_Unicode FormatType9[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage9[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex9[] = {22};
+static const sal_Unicode FormatCode9[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName9[] = {0x0};
+static const sal_Unicode FormatKey10[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement10[] = {0};
+static const sal_Unicode FormatType10[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage10[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex10[] = {23};
+static const sal_Unicode FormatCode10[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName10[] = {0x0};
+static const sal_Unicode FormatKey11[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement11[] = {0};
+static const sal_Unicode FormatType11[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage11[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex11[] = {25};
+static const sal_Unicode FormatCode11[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName11[] = {0x0};
+static const sal_Unicode FormatKey12[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement12[] = {0};
+static const sal_Unicode FormatType12[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage12[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex12[] = {27};
+static const sal_Unicode FormatCode12[] = {0x4e, 0x4e, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName12[] = {0x0};
+static const sal_Unicode FormatKey13[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement13[] = {0};
+static const sal_Unicode FormatType13[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage13[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex13[] = {29};
+static const sal_Unicode FormatCode13[] = {0x4e, 0x4e, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName13[] = {0x0};
+static const sal_Unicode FormatKey14[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement14[] = {0};
+static const sal_Unicode FormatType14[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage14[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex14[] = {30};
+static const sal_Unicode FormatCode14[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName14[] = {0x0};
+static const sal_Unicode FormatKey15[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement15[] = {0};
+static const sal_Unicode FormatType15[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage15[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex15[] = {24};
+static const sal_Unicode FormatCode15[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x2e, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName15[] = {0x0};
+static const sal_Unicode FormatKey16[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement16[] = {0};
+static const sal_Unicode FormatType16[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage16[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex16[] = {26};
+static const sal_Unicode FormatCode16[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName16[] = {0x0};
+static const sal_Unicode FormatKey17[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement17[] = {0};
+static const sal_Unicode FormatType17[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage17[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex17[] = {31};
+static const sal_Unicode FormatCode17[] = {0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName17[] = {0x0};
+static const sal_Unicode FormatKey18[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x39, 0x0};
+static const sal_Unicode defaultFormatElement18[] = {0};
+static const sal_Unicode FormatType18[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage18[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex18[] = {32};
+static const sal_Unicode FormatCode18[] = {0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName18[] = {0x0};
+static const sal_Unicode FormatKey19[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x30, 0x0};
+static const sal_Unicode defaultFormatElement19[] = {0};
+static const sal_Unicode FormatType19[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage19[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex19[] = {33};
+static const sal_Unicode FormatCode19[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName19[] = {0x49, 0x53, 0x4f, 0x20, 0x38, 0x36, 0x30, 0x31, 0x20, 0x28, 0x45, 0x4e, 0x20, 0x32, 0x38, 0x36, 0x30, 0x31, 0x29, 0x0};
+static const sal_Unicode FormatKey20[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement20[] = {0};
+static const sal_Unicode FormatType20[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage20[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex20[] = {38};
+static const sal_Unicode FormatCode20[] = {0x57, 0x57, 0x0};
+static const sal_Unicode FormatDefaultName20[] = {0x0};
+static const sal_Unicode FormatKey21[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement21[] = {1};
+static const sal_Unicode FormatType21[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage21[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex21[] = {39};
+static const sal_Unicode FormatCode21[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName21[] = {0x0};
+static const sal_Unicode FormatKey22[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement22[] = {1};
+static const sal_Unicode FormatType22[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage22[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex22[] = {40};
+static const sal_Unicode FormatCode22[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName22[] = {0x0};
+static const sal_Unicode FormatKey23[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement23[] = {0};
+static const sal_Unicode FormatType23[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage23[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex23[] = {41};
+static const sal_Unicode FormatCode23[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName23[] = {0x0};
+static const sal_Unicode FormatKey24[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement24[] = {0};
+static const sal_Unicode FormatType24[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage24[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex24[] = {42};
+static const sal_Unicode FormatCode24[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName24[] = {0x0};
+static const sal_Unicode FormatKey25[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement25[] = {0};
+static const sal_Unicode FormatType25[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage25[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex25[] = {43};
+static const sal_Unicode FormatCode25[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName25[] = {0x0};
+static const sal_Unicode FormatKey26[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement26[] = {0};
+static const sal_Unicode FormatType26[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage26[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex26[] = {44};
+static const sal_Unicode FormatCode26[] = {0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName26[] = {0x0};
+static const sal_Unicode FormatKey27[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement27[] = {0};
+static const sal_Unicode FormatType27[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage27[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex27[] = {45};
+static const sal_Unicode FormatCode27[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName27[] = {0x0};
+static const sal_Unicode FormatKey28[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement28[] = {1};
+static const sal_Unicode FormatType28[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage28[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex28[] = {46};
+static const sal_Unicode FormatCode28[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName28[] = {0x0};
+static const sal_Unicode FormatKey29[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement29[] = {0};
+static const sal_Unicode FormatType29[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage29[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex29[] = {47};
+static const sal_Unicode FormatCode29[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x59, 0x59, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName29[] = {0x0};
+static const sal_Unicode FormatKey30[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement30[] = {1};
+static const sal_Unicode FormatType30[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage30[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex30[] = {0};
+static const sal_Unicode FormatCode30[] = {0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0};
+static const sal_Unicode FormatDefaultName30[] = {0x0};
+static const sal_Unicode FormatKey31[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement31[] = {1};
+static const sal_Unicode FormatType31[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage31[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex31[] = {1};
+static const sal_Unicode FormatCode31[] = {0x30, 0x0};
+static const sal_Unicode FormatDefaultName31[] = {0x0};
+static const sal_Unicode FormatKey32[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement32[] = {0};
+static const sal_Unicode FormatType32[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage32[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex32[] = {2};
+static const sal_Unicode FormatCode32[] = {0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName32[] = {0x0};
+static const sal_Unicode FormatKey33[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement33[] = {0};
+static const sal_Unicode FormatType33[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage33[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex33[] = {3};
+static const sal_Unicode FormatCode33[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName33[] = {0x0};
+static const sal_Unicode FormatKey34[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement34[] = {0};
+static const sal_Unicode FormatType34[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage34[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex34[] = {4};
+static const sal_Unicode FormatCode34[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName34[] = {0x0};
+static const sal_Unicode FormatKey35[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement35[] = {0};
+static const sal_Unicode FormatType35[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage35[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex35[] = {5};
+static const sal_Unicode FormatCode35[] = {0x23, 0x2c, 0x23, 0x23, 0x23, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName35[] = {0x0};
+static const sal_Unicode FormatKey36[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement36[] = {0};
+static const sal_Unicode FormatType36[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage36[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex36[] = {70};
+static const sal_Unicode FormatCode36[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x29, 0x0};
+static const sal_Unicode FormatDefaultName36[] = {0x0};
+static const sal_Unicode FormatKey37[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement37[] = {0};
+static const sal_Unicode FormatType37[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage37[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex37[] = {71};
+static const sal_Unicode FormatCode37[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x29, 0x0};
+static const sal_Unicode FormatDefaultName37[] = {0x0};
+static const sal_Unicode FormatKey38[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement38[] = {1};
+static const sal_Unicode FormatType38[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage38[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex38[] = {12};
+static const sal_Unicode FormatCode38[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName38[] = {0x0};
+static const sal_Unicode FormatKey39[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement39[] = {0};
+static const sal_Unicode FormatType39[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage39[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex39[] = {13};
+static const sal_Unicode FormatCode39[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName39[] = {0x0};
+static const sal_Unicode FormatKey40[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement40[] = {0};
+static const sal_Unicode FormatType40[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage40[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex40[] = {14};
+static const sal_Unicode FormatCode40[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName40[] = {0x0};
+static const sal_Unicode FormatKey41[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement41[] = {1};
+static const sal_Unicode FormatType41[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage41[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex41[] = {15};
+static const sal_Unicode FormatCode41[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName41[] = {0x0};
+static const sal_Unicode FormatKey42[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement42[] = {0};
+static const sal_Unicode FormatType42[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage42[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex42[] = {16};
+static const sal_Unicode FormatCode42[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x20, 0x43, 0x43, 0x43, 0x0};
+static const sal_Unicode FormatDefaultName42[] = {0x0};
+static const sal_Unicode FormatKey43[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement43[] = {0};
+static const sal_Unicode FormatType43[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage43[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex43[] = {17};
+static const sal_Unicode FormatCode43[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x0};
+static const sal_Unicode FormatDefaultName43[] = {0x0};
+static const sal_Unicode FormatKey44[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement44[] = {0};
+static const sal_Unicode FormatType44[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage44[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex44[] = {72};
+static const sal_Unicode FormatCode44[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2a, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2a, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName44[] = {0x0};
+static const sal_Unicode FormatKey45[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement45[] = {0};
+static const sal_Unicode FormatType45[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage45[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex45[] = {73};
+static const sal_Unicode FormatCode45[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2a, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2a, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName45[] = {0x0};
+static const sal_Unicode FormatKey46[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement46[] = {1};
+static const sal_Unicode FormatType46[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage46[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex46[] = {8};
+static const sal_Unicode FormatCode46[] = {0x30, 0x25, 0x0};
+static const sal_Unicode FormatDefaultName46[] = {0x0};
+static const sal_Unicode FormatKey47[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement47[] = {1};
+static const sal_Unicode FormatType47[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage47[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex47[] = {9};
+static const sal_Unicode FormatCode47[] = {0x30, 0x2e, 0x30, 0x30, 0x25, 0x0};
+static const sal_Unicode FormatDefaultName47[] = {0x0};
+static const sal_Unicode FormatKey48[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement48[] = {0};
+static const sal_Unicode FormatType48[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage48[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex48[] = {6};
+static const sal_Unicode FormatCode48[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName48[] = {0x0};
+static const sal_Unicode FormatKey49[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement49[] = {1};
+static const sal_Unicode FormatType49[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage49[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex49[] = {7};
+static const sal_Unicode FormatCode49[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName49[] = {0x0};
+static const sal_Unicode FormatKey50[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement50[] = {0};
+static const sal_Unicode FormatType50[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage50[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex50[] = {78};
+static const sal_Unicode FormatCode50[] = {0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName50[] = {0x0};
+
+static const sal_Int16 FormatElementsCount0 = 51;
+static const sal_Unicode* FormatElementsArray0[] = {
+ FormatCode0,
+ FormatDefaultName0,
+ FormatKey0,
+ FormatType0,
+ FormatUsage0,
+ Formatindex0,
+ defaultFormatElement0,
+ FormatCode1,
+ FormatDefaultName1,
+ FormatKey1,
+ FormatType1,
+ FormatUsage1,
+ Formatindex1,
+ defaultFormatElement1,
+ FormatCode2,
+ FormatDefaultName2,
+ FormatKey2,
+ FormatType2,
+ FormatUsage2,
+ Formatindex2,
+ defaultFormatElement2,
+ FormatCode3,
+ FormatDefaultName3,
+ FormatKey3,
+ FormatType3,
+ FormatUsage3,
+ Formatindex3,
+ defaultFormatElement3,
+ FormatCode4,
+ FormatDefaultName4,
+ FormatKey4,
+ FormatType4,
+ FormatUsage4,
+ Formatindex4,
+ defaultFormatElement4,
+ FormatCode5,
+ FormatDefaultName5,
+ FormatKey5,
+ FormatType5,
+ FormatUsage5,
+ Formatindex5,
+ defaultFormatElement5,
+ FormatCode6,
+ FormatDefaultName6,
+ FormatKey6,
+ FormatType6,
+ FormatUsage6,
+ Formatindex6,
+ defaultFormatElement6,
+ FormatCode7,
+ FormatDefaultName7,
+ FormatKey7,
+ FormatType7,
+ FormatUsage7,
+ Formatindex7,
+ defaultFormatElement7,
+ FormatCode8,
+ FormatDefaultName8,
+ FormatKey8,
+ FormatType8,
+ FormatUsage8,
+ Formatindex8,
+ defaultFormatElement8,
+ FormatCode9,
+ FormatDefaultName9,
+ FormatKey9,
+ FormatType9,
+ FormatUsage9,
+ Formatindex9,
+ defaultFormatElement9,
+ FormatCode10,
+ FormatDefaultName10,
+ FormatKey10,
+ FormatType10,
+ FormatUsage10,
+ Formatindex10,
+ defaultFormatElement10,
+ FormatCode11,
+ FormatDefaultName11,
+ FormatKey11,
+ FormatType11,
+ FormatUsage11,
+ Formatindex11,
+ defaultFormatElement11,
+ FormatCode12,
+ FormatDefaultName12,
+ FormatKey12,
+ FormatType12,
+ FormatUsage12,
+ Formatindex12,
+ defaultFormatElement12,
+ FormatCode13,
+ FormatDefaultName13,
+ FormatKey13,
+ FormatType13,
+ FormatUsage13,
+ Formatindex13,
+ defaultFormatElement13,
+ FormatCode14,
+ FormatDefaultName14,
+ FormatKey14,
+ FormatType14,
+ FormatUsage14,
+ Formatindex14,
+ defaultFormatElement14,
+ FormatCode15,
+ FormatDefaultName15,
+ FormatKey15,
+ FormatType15,
+ FormatUsage15,
+ Formatindex15,
+ defaultFormatElement15,
+ FormatCode16,
+ FormatDefaultName16,
+ FormatKey16,
+ FormatType16,
+ FormatUsage16,
+ Formatindex16,
+ defaultFormatElement16,
+ FormatCode17,
+ FormatDefaultName17,
+ FormatKey17,
+ FormatType17,
+ FormatUsage17,
+ Formatindex17,
+ defaultFormatElement17,
+ FormatCode18,
+ FormatDefaultName18,
+ FormatKey18,
+ FormatType18,
+ FormatUsage18,
+ Formatindex18,
+ defaultFormatElement18,
+ FormatCode19,
+ FormatDefaultName19,
+ FormatKey19,
+ FormatType19,
+ FormatUsage19,
+ Formatindex19,
+ defaultFormatElement19,
+ FormatCode20,
+ FormatDefaultName20,
+ FormatKey20,
+ FormatType20,
+ FormatUsage20,
+ Formatindex20,
+ defaultFormatElement20,
+ FormatCode21,
+ FormatDefaultName21,
+ FormatKey21,
+ FormatType21,
+ FormatUsage21,
+ Formatindex21,
+ defaultFormatElement21,
+ FormatCode22,
+ FormatDefaultName22,
+ FormatKey22,
+ FormatType22,
+ FormatUsage22,
+ Formatindex22,
+ defaultFormatElement22,
+ FormatCode23,
+ FormatDefaultName23,
+ FormatKey23,
+ FormatType23,
+ FormatUsage23,
+ Formatindex23,
+ defaultFormatElement23,
+ FormatCode24,
+ FormatDefaultName24,
+ FormatKey24,
+ FormatType24,
+ FormatUsage24,
+ Formatindex24,
+ defaultFormatElement24,
+ FormatCode25,
+ FormatDefaultName25,
+ FormatKey25,
+ FormatType25,
+ FormatUsage25,
+ Formatindex25,
+ defaultFormatElement25,
+ FormatCode26,
+ FormatDefaultName26,
+ FormatKey26,
+ FormatType26,
+ FormatUsage26,
+ Formatindex26,
+ defaultFormatElement26,
+ FormatCode27,
+ FormatDefaultName27,
+ FormatKey27,
+ FormatType27,
+ FormatUsage27,
+ Formatindex27,
+ defaultFormatElement27,
+ FormatCode28,
+ FormatDefaultName28,
+ FormatKey28,
+ FormatType28,
+ FormatUsage28,
+ Formatindex28,
+ defaultFormatElement28,
+ FormatCode29,
+ FormatDefaultName29,
+ FormatKey29,
+ FormatType29,
+ FormatUsage29,
+ Formatindex29,
+ defaultFormatElement29,
+ FormatCode30,
+ FormatDefaultName30,
+ FormatKey30,
+ FormatType30,
+ FormatUsage30,
+ Formatindex30,
+ defaultFormatElement30,
+ FormatCode31,
+ FormatDefaultName31,
+ FormatKey31,
+ FormatType31,
+ FormatUsage31,
+ Formatindex31,
+ defaultFormatElement31,
+ FormatCode32,
+ FormatDefaultName32,
+ FormatKey32,
+ FormatType32,
+ FormatUsage32,
+ Formatindex32,
+ defaultFormatElement32,
+ FormatCode33,
+ FormatDefaultName33,
+ FormatKey33,
+ FormatType33,
+ FormatUsage33,
+ Formatindex33,
+ defaultFormatElement33,
+ FormatCode34,
+ FormatDefaultName34,
+ FormatKey34,
+ FormatType34,
+ FormatUsage34,
+ Formatindex34,
+ defaultFormatElement34,
+ FormatCode35,
+ FormatDefaultName35,
+ FormatKey35,
+ FormatType35,
+ FormatUsage35,
+ Formatindex35,
+ defaultFormatElement35,
+ FormatCode36,
+ FormatDefaultName36,
+ FormatKey36,
+ FormatType36,
+ FormatUsage36,
+ Formatindex36,
+ defaultFormatElement36,
+ FormatCode37,
+ FormatDefaultName37,
+ FormatKey37,
+ FormatType37,
+ FormatUsage37,
+ Formatindex37,
+ defaultFormatElement37,
+ FormatCode38,
+ FormatDefaultName38,
+ FormatKey38,
+ FormatType38,
+ FormatUsage38,
+ Formatindex38,
+ defaultFormatElement38,
+ FormatCode39,
+ FormatDefaultName39,
+ FormatKey39,
+ FormatType39,
+ FormatUsage39,
+ Formatindex39,
+ defaultFormatElement39,
+ FormatCode40,
+ FormatDefaultName40,
+ FormatKey40,
+ FormatType40,
+ FormatUsage40,
+ Formatindex40,
+ defaultFormatElement40,
+ FormatCode41,
+ FormatDefaultName41,
+ FormatKey41,
+ FormatType41,
+ FormatUsage41,
+ Formatindex41,
+ defaultFormatElement41,
+ FormatCode42,
+ FormatDefaultName42,
+ FormatKey42,
+ FormatType42,
+ FormatUsage42,
+ Formatindex42,
+ defaultFormatElement42,
+ FormatCode43,
+ FormatDefaultName43,
+ FormatKey43,
+ FormatType43,
+ FormatUsage43,
+ Formatindex43,
+ defaultFormatElement43,
+ FormatCode44,
+ FormatDefaultName44,
+ FormatKey44,
+ FormatType44,
+ FormatUsage44,
+ Formatindex44,
+ defaultFormatElement44,
+ FormatCode45,
+ FormatDefaultName45,
+ FormatKey45,
+ FormatType45,
+ FormatUsage45,
+ Formatindex45,
+ defaultFormatElement45,
+ FormatCode46,
+ FormatDefaultName46,
+ FormatKey46,
+ FormatType46,
+ FormatUsage46,
+ Formatindex46,
+ defaultFormatElement46,
+ FormatCode47,
+ FormatDefaultName47,
+ FormatKey47,
+ FormatType47,
+ FormatUsage47,
+ Formatindex47,
+ defaultFormatElement47,
+ FormatCode48,
+ FormatDefaultName48,
+ FormatKey48,
+ FormatType48,
+ FormatUsage48,
+ Formatindex48,
+ defaultFormatElement48,
+ FormatCode49,
+ FormatDefaultName49,
+ FormatKey49,
+ FormatType49,
+ FormatUsage49,
+ Formatindex49,
+ defaultFormatElement49,
+ FormatCode50,
+ FormatDefaultName50,
+ FormatKey50,
+ FormatType50,
+ FormatUsage50,
+ Formatindex50,
+ defaultFormatElement50,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_GB(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ count = FormatElementsCount0;
+ from = replaceFrom0;
+ to = replaceTo0;
+ return (sal_Unicode**)FormatElementsArray0;
+}
+static const sal_Unicode DateAcceptancePattern0[] = {0x44, 0x2f, 0x4d, 0x2f, 0x59, 0x0};
+static const sal_Unicode DateAcceptancePattern1[] = {0x44, 0x2f, 0x4d, 0x0};
+static const sal_Unicode DateAcceptancePattern2[] = {0x44, 0x2d, 0x4d, 0x0};
+static const sal_Int16 DateAcceptancePatternsCount = 3;
+static const sal_Unicode* DateAcceptancePatternsArray[] = {
+ DateAcceptancePattern0,
+ DateAcceptancePattern1,
+ DateAcceptancePattern2,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_GB(sal_Int16& count)
+{
+ count = DateAcceptancePatternsCount;
+ return (sal_Unicode**)DateAcceptancePatternsArray;
+}
+extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_GB(sal_Int16& count)
+{
+ return getCollatorImplementation_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_GB(sal_Int16& count)
+{
+ return getCollationOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_GB(sal_Int16& count)
+{
+ return getSearchOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_GB(sal_Int16& count)
+{
+ return getIndexAlgorithm_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_GB(sal_Int16& count)
+{
+ return getUnicodeScripts_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_GB(sal_Int16& count)
+{
+ return getFollowPageWords_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getAllCalendars_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_GB(sal_Int16& count)
+{
+ return getAllCalendars_en_US(count);
+}
+static const sal_Unicode defaultCurrency0[] = {1};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1};
+static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0};
+static const sal_Unicode currencyID0[] = {0x47, 0x42, 0x50, 0x0};
+static const sal_Unicode currencySymbol0[] = {0xa3, 0x0};
+static const sal_Unicode bankSymbol0[] = {0x47, 0x42, 0x50, 0x0};
+static const sal_Unicode currencyName0[] = {0x50, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x53, 0x74, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x67, 0x0};
+static const sal_Unicode currencyDecimalPlaces0[] = {2};
+
+static const sal_Int16 currencyCount = 1;
+
+static const sal_Unicode* currencies[] = {
+ currencyID0,
+ currencySymbol0,
+ bankSymbol0,
+ currencyName0,
+ defaultCurrency0,
+ defaultCurrencyUsedInCompatibleFormatCodes0,
+ currencyDecimalPlaces0,
+ defaultCurrencyLegacyOnly0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_GB(sal_Int16& count)
+{
+ count = currencyCount;
+ return (sal_Unicode**)currencies;
+}
+extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_GB(sal_Int16& count)
+{
+ return getTransliterations_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_GB(sal_Int16& count)
+{
+ return getForbiddenCharacters_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_GB(sal_Int16& count)
+{
+ return getBreakIteratorRules_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_GB(sal_Int16& count)
+{
+ return getReservedWords_en_US(count);
+}
+// ---> ContinuousNumbering
+extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_GB(sal_Int16& nStyles, sal_Int16& nAttributes)
+{
+ return getContinuousNumberingLevels_en_US(nStyles, nAttributes);
+}
+// ---> OutlineNumbering
+extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_GB(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)
+{
+ return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes);
+}
+} // extern "C"
+
diff --git a/vcl/workben/localestub/localedata_en_GH.cxx b/vcl/workben/localestub/localedata_en_GH.cxx
new file mode 100644
index 000000000..237df2ca8
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_GH.cxx
@@ -0,0 +1,1526 @@
+#include <sal/types.h>
+
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = {0x65, 0x6e, 0x0};
+static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0};
+static const sal_Unicode countryID[] = {0x47, 0x48, 0x0};
+static const sal_Unicode countryDefaultName[] = {0x47, 0x68, 0x61, 0x6e, 0x61, 0x0};
+static const sal_Unicode Variant[] = {0x0};
+
+static const sal_Unicode* LCInfoArray[] = {
+ langID,
+ langDefaultName,
+ countryID,
+ countryDefaultName,
+ Variant
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_GH(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCInfoArray;
+}
+
+
+static const sal_Unicode LC_CTYPE_Unoid[] = {0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x0};
+static const sal_Unicode dateSeparator[] = {0x2f, 0x0};
+static const sal_Unicode thousandSeparator[] = {0x2c, 0x0};
+static const sal_Unicode decimalSeparator[] = {0x2e, 0x0};
+static const sal_Unicode timeSeparator[] = {0x3a, 0x0};
+static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0};
+static const sal_Unicode listSeparator[] = {0x3b, 0x0};
+static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x2c, 0x20, 0x0};
+static const sal_Unicode LongDateDaySeparator[] = {0x2c, 0x20, 0x0};
+static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0};
+static const sal_Unicode quotationStart[] = {0x27, 0x0};
+static const sal_Unicode quotationEnd[] = {0x27, 0x0};
+static const sal_Unicode doubleQuotationStart[] = {0x22, 0x0};
+static const sal_Unicode doubleQuotationEnd[] = {0x22, 0x0};
+static const sal_Unicode timeAM[] = {0x61, 0x2e, 0x6d, 0x2e, 0x0};
+static const sal_Unicode timePM[] = {0x70, 0x2e, 0x6d, 0x2e, 0x0};
+static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0};
+
+static const sal_Unicode* LCType[] = {
+ LC_CTYPE_Unoid,
+ dateSeparator,
+ thousandSeparator,
+ decimalSeparator,
+ timeSeparator,
+ time100SecSeparator,
+ listSeparator,
+ quotationStart,
+ quotationEnd,
+ doubleQuotationStart,
+ doubleQuotationEnd,
+ timeAM,
+ timePM,
+ measurementSystem,
+ LongDateDayOfWeekSeparator,
+ LongDateDaySeparator,
+ LongDateMonthSeparator,
+ LongDateYearSeparator
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_GH(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCType;
+}
+static const sal_Unicode replaceFrom0[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x0};
+static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x20b5, 0x2d, 0x38, 0x34, 0x30, 0x39, 0x5d, 0x0};
+static const sal_Unicode FormatKey0[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement0[] = {1};
+static const sal_Unicode FormatType0[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage0[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex0[] = {0};
+static const sal_Unicode FormatCode0[] = {0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0};
+static const sal_Unicode FormatDefaultName0[] = {0x0};
+static const sal_Unicode FormatKey1[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement1[] = {1};
+static const sal_Unicode FormatType1[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage1[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex1[] = {1};
+static const sal_Unicode FormatCode1[] = {0x30, 0x0};
+static const sal_Unicode FormatDefaultName1[] = {0x0};
+static const sal_Unicode FormatKey2[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement2[] = {0};
+static const sal_Unicode FormatType2[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage2[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex2[] = {2};
+static const sal_Unicode FormatCode2[] = {0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName2[] = {0x0};
+static const sal_Unicode FormatKey3[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement3[] = {0};
+static const sal_Unicode FormatType3[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage3[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex3[] = {3};
+static const sal_Unicode FormatCode3[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName3[] = {0x0};
+static const sal_Unicode FormatKey4[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement4[] = {0};
+static const sal_Unicode FormatType4[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage4[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex4[] = {4};
+static const sal_Unicode FormatCode4[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName4[] = {0x0};
+static const sal_Unicode FormatKey5[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement5[] = {0};
+static const sal_Unicode FormatType5[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage5[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex5[] = {5};
+static const sal_Unicode FormatCode5[] = {0x23, 0x2c, 0x23, 0x23, 0x23, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName5[] = {0x0};
+static const sal_Unicode FormatKey6[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement6[] = {0};
+static const sal_Unicode FormatType6[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage6[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex6[] = {70};
+static const sal_Unicode FormatCode6[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x29, 0x0};
+static const sal_Unicode FormatDefaultName6[] = {0x0};
+static const sal_Unicode FormatKey7[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement7[] = {0};
+static const sal_Unicode FormatType7[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage7[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex7[] = {71};
+static const sal_Unicode FormatCode7[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x29, 0x0};
+static const sal_Unicode FormatDefaultName7[] = {0x0};
+static const sal_Unicode FormatKey8[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement8[] = {0};
+static const sal_Unicode FormatType8[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage8[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex8[] = {6};
+static const sal_Unicode FormatCode8[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName8[] = {0x0};
+static const sal_Unicode FormatKey9[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement9[] = {1};
+static const sal_Unicode FormatType9[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage9[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex9[] = {7};
+static const sal_Unicode FormatCode9[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName9[] = {0x0};
+static const sal_Unicode FormatKey10[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement10[] = {0};
+static const sal_Unicode FormatType10[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage10[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex10[] = {78};
+static const sal_Unicode FormatCode10[] = {0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName10[] = {0x0};
+static const sal_Unicode FormatKey11[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement11[] = {1};
+static const sal_Unicode FormatType11[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage11[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex11[] = {8};
+static const sal_Unicode FormatCode11[] = {0x30, 0x25, 0x0};
+static const sal_Unicode FormatDefaultName11[] = {0x0};
+static const sal_Unicode FormatKey12[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement12[] = {1};
+static const sal_Unicode FormatType12[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage12[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex12[] = {9};
+static const sal_Unicode FormatCode12[] = {0x30, 0x2e, 0x30, 0x30, 0x25, 0x0};
+static const sal_Unicode FormatDefaultName12[] = {0x0};
+static const sal_Unicode FormatKey13[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement13[] = {1};
+static const sal_Unicode FormatType13[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage13[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex13[] = {12};
+static const sal_Unicode FormatCode13[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName13[] = {0x0};
+static const sal_Unicode FormatKey14[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement14[] = {0};
+static const sal_Unicode FormatType14[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage14[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex14[] = {13};
+static const sal_Unicode FormatCode14[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName14[] = {0x0};
+static const sal_Unicode FormatKey15[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement15[] = {0};
+static const sal_Unicode FormatType15[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage15[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex15[] = {14};
+static const sal_Unicode FormatCode15[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName15[] = {0x0};
+static const sal_Unicode FormatKey16[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement16[] = {1};
+static const sal_Unicode FormatType16[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage16[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex16[] = {15};
+static const sal_Unicode FormatCode16[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName16[] = {0x0};
+static const sal_Unicode FormatKey17[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement17[] = {0};
+static const sal_Unicode FormatType17[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage17[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex17[] = {16};
+static const sal_Unicode FormatCode17[] = {0x43, 0x43, 0x43, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName17[] = {0x0};
+static const sal_Unicode FormatKey18[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement18[] = {0};
+static const sal_Unicode FormatType18[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage18[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex18[] = {17};
+static const sal_Unicode FormatCode18[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x0};
+static const sal_Unicode FormatDefaultName18[] = {0x0};
+static const sal_Unicode FormatKey19[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement19[] = {1};
+static const sal_Unicode FormatType19[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage19[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex19[] = {18};
+static const sal_Unicode FormatCode19[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName19[] = {0x0};
+static const sal_Unicode FormatKey20[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x39, 0x0};
+static const sal_Unicode defaultFormatElement20[] = {1};
+static const sal_Unicode FormatType20[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage20[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex20[] = {19};
+static const sal_Unicode FormatCode20[] = {0x44, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName20[] = {0x0};
+static const sal_Unicode FormatKey21[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement21[] = {1};
+static const sal_Unicode FormatType21[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage21[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex21[] = {20};
+static const sal_Unicode FormatCode21[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName21[] = {0x0};
+static const sal_Unicode FormatKey22[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement22[] = {0};
+static const sal_Unicode FormatType22[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage22[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex22[] = {21};
+static const sal_Unicode FormatCode22[] = {0x59, 0x59, 0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName22[] = {0x0};
+static const sal_Unicode FormatKey23[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x30, 0x0};
+static const sal_Unicode defaultFormatElement23[] = {0};
+static const sal_Unicode FormatType23[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage23[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex23[] = {22};
+static const sal_Unicode FormatCode23[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName23[] = {0x0};
+static const sal_Unicode FormatKey24[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement24[] = {0};
+static const sal_Unicode FormatType24[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage24[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex24[] = {23};
+static const sal_Unicode FormatCode24[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName24[] = {0x0};
+static const sal_Unicode FormatKey25[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement25[] = {0};
+static const sal_Unicode FormatType25[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage25[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex25[] = {24};
+static const sal_Unicode FormatCode25[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x2e, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName25[] = {0x0};
+static const sal_Unicode FormatKey26[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement26[] = {0};
+static const sal_Unicode FormatType26[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage26[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex26[] = {25};
+static const sal_Unicode FormatCode26[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName26[] = {0x0};
+static const sal_Unicode FormatKey27[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement27[] = {0};
+static const sal_Unicode FormatType27[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage27[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex27[] = {26};
+static const sal_Unicode FormatCode27[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName27[] = {0x0};
+static const sal_Unicode FormatKey28[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement28[] = {0};
+static const sal_Unicode FormatType28[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage28[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex28[] = {27};
+static const sal_Unicode FormatCode28[] = {0x4e, 0x4e, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName28[] = {0x0};
+static const sal_Unicode FormatKey29[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement29[] = {0};
+static const sal_Unicode FormatType29[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage29[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex29[] = {28};
+static const sal_Unicode FormatCode29[] = {0x4e, 0x4e, 0x20, 0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName29[] = {0x0};
+static const sal_Unicode FormatKey30[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement30[] = {0};
+static const sal_Unicode FormatType30[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage30[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex30[] = {29};
+static const sal_Unicode FormatCode30[] = {0x4e, 0x4e, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName30[] = {0x0};
+static const sal_Unicode FormatKey31[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement31[] = {0};
+static const sal_Unicode FormatType31[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage31[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex31[] = {30};
+static const sal_Unicode FormatCode31[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName31[] = {0x0};
+static const sal_Unicode FormatKey32[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement32[] = {0};
+static const sal_Unicode FormatType32[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage32[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex32[] = {31};
+static const sal_Unicode FormatCode32[] = {0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName32[] = {0x0};
+static const sal_Unicode FormatKey33[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x39, 0x0};
+static const sal_Unicode defaultFormatElement33[] = {0};
+static const sal_Unicode FormatType33[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage33[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex33[] = {32};
+static const sal_Unicode FormatCode33[] = {0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName33[] = {0x0};
+static const sal_Unicode FormatKey34[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x30, 0x0};
+static const sal_Unicode defaultFormatElement34[] = {0};
+static const sal_Unicode FormatType34[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage34[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex34[] = {33};
+static const sal_Unicode FormatCode34[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName34[] = {0x49, 0x53, 0x4f, 0x20, 0x38, 0x36, 0x30, 0x31, 0x0};
+static const sal_Unicode FormatKey35[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement35[] = {0};
+static const sal_Unicode FormatType35[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage35[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex35[] = {34};
+static const sal_Unicode FormatCode35[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName35[] = {0x0};
+static const sal_Unicode FormatKey36[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement36[] = {0};
+static const sal_Unicode FormatType36[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage36[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex36[] = {35};
+static const sal_Unicode FormatCode36[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName36[] = {0x0};
+static const sal_Unicode FormatKey37[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement37[] = {0};
+static const sal_Unicode FormatType37[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage37[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex37[] = {36};
+static const sal_Unicode FormatCode37[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName37[] = {0x0};
+static const sal_Unicode FormatKey38[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement38[] = {0};
+static const sal_Unicode FormatType38[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage38[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex38[] = {37};
+static const sal_Unicode FormatCode38[] = {0x51, 0x51, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName38[] = {0x0};
+static const sal_Unicode FormatKey39[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement39[] = {0};
+static const sal_Unicode FormatType39[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage39[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex39[] = {38};
+static const sal_Unicode FormatCode39[] = {0x57, 0x57, 0x0};
+static const sal_Unicode FormatDefaultName39[] = {0x0};
+static const sal_Unicode FormatKey40[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement40[] = {1};
+static const sal_Unicode FormatType40[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage40[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex40[] = {39};
+static const sal_Unicode FormatCode40[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName40[] = {0x0};
+static const sal_Unicode FormatKey41[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement41[] = {1};
+static const sal_Unicode FormatType41[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage41[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex41[] = {40};
+static const sal_Unicode FormatCode41[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName41[] = {0x0};
+static const sal_Unicode FormatKey42[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement42[] = {0};
+static const sal_Unicode FormatType42[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage42[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex42[] = {41};
+static const sal_Unicode FormatCode42[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName42[] = {0x0};
+static const sal_Unicode FormatKey43[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement43[] = {0};
+static const sal_Unicode FormatType43[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage43[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex43[] = {42};
+static const sal_Unicode FormatCode43[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName43[] = {0x0};
+static const sal_Unicode FormatKey44[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement44[] = {0};
+static const sal_Unicode FormatType44[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage44[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex44[] = {43};
+static const sal_Unicode FormatCode44[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName44[] = {0x0};
+static const sal_Unicode FormatKey45[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement45[] = {0};
+static const sal_Unicode FormatType45[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage45[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex45[] = {44};
+static const sal_Unicode FormatCode45[] = {0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName45[] = {0x0};
+static const sal_Unicode FormatKey46[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement46[] = {0};
+static const sal_Unicode FormatType46[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage46[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex46[] = {45};
+static const sal_Unicode FormatCode46[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName46[] = {0x0};
+static const sal_Unicode FormatKey47[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement47[] = {1};
+static const sal_Unicode FormatType47[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage47[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex47[] = {46};
+static const sal_Unicode FormatCode47[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName47[] = {0x0};
+static const sal_Unicode FormatKey48[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement48[] = {0};
+static const sal_Unicode FormatType48[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage48[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex48[] = {47};
+static const sal_Unicode FormatCode48[] = {0x59, 0x59, 0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName48[] = {0x0};
+
+static const sal_Int16 FormatElementsCount0 = 49;
+static const sal_Unicode* FormatElementsArray0[] = {
+ FormatCode0,
+ FormatDefaultName0,
+ FormatKey0,
+ FormatType0,
+ FormatUsage0,
+ Formatindex0,
+ defaultFormatElement0,
+ FormatCode1,
+ FormatDefaultName1,
+ FormatKey1,
+ FormatType1,
+ FormatUsage1,
+ Formatindex1,
+ defaultFormatElement1,
+ FormatCode2,
+ FormatDefaultName2,
+ FormatKey2,
+ FormatType2,
+ FormatUsage2,
+ Formatindex2,
+ defaultFormatElement2,
+ FormatCode3,
+ FormatDefaultName3,
+ FormatKey3,
+ FormatType3,
+ FormatUsage3,
+ Formatindex3,
+ defaultFormatElement3,
+ FormatCode4,
+ FormatDefaultName4,
+ FormatKey4,
+ FormatType4,
+ FormatUsage4,
+ Formatindex4,
+ defaultFormatElement4,
+ FormatCode5,
+ FormatDefaultName5,
+ FormatKey5,
+ FormatType5,
+ FormatUsage5,
+ Formatindex5,
+ defaultFormatElement5,
+ FormatCode6,
+ FormatDefaultName6,
+ FormatKey6,
+ FormatType6,
+ FormatUsage6,
+ Formatindex6,
+ defaultFormatElement6,
+ FormatCode7,
+ FormatDefaultName7,
+ FormatKey7,
+ FormatType7,
+ FormatUsage7,
+ Formatindex7,
+ defaultFormatElement7,
+ FormatCode8,
+ FormatDefaultName8,
+ FormatKey8,
+ FormatType8,
+ FormatUsage8,
+ Formatindex8,
+ defaultFormatElement8,
+ FormatCode9,
+ FormatDefaultName9,
+ FormatKey9,
+ FormatType9,
+ FormatUsage9,
+ Formatindex9,
+ defaultFormatElement9,
+ FormatCode10,
+ FormatDefaultName10,
+ FormatKey10,
+ FormatType10,
+ FormatUsage10,
+ Formatindex10,
+ defaultFormatElement10,
+ FormatCode11,
+ FormatDefaultName11,
+ FormatKey11,
+ FormatType11,
+ FormatUsage11,
+ Formatindex11,
+ defaultFormatElement11,
+ FormatCode12,
+ FormatDefaultName12,
+ FormatKey12,
+ FormatType12,
+ FormatUsage12,
+ Formatindex12,
+ defaultFormatElement12,
+ FormatCode13,
+ FormatDefaultName13,
+ FormatKey13,
+ FormatType13,
+ FormatUsage13,
+ Formatindex13,
+ defaultFormatElement13,
+ FormatCode14,
+ FormatDefaultName14,
+ FormatKey14,
+ FormatType14,
+ FormatUsage14,
+ Formatindex14,
+ defaultFormatElement14,
+ FormatCode15,
+ FormatDefaultName15,
+ FormatKey15,
+ FormatType15,
+ FormatUsage15,
+ Formatindex15,
+ defaultFormatElement15,
+ FormatCode16,
+ FormatDefaultName16,
+ FormatKey16,
+ FormatType16,
+ FormatUsage16,
+ Formatindex16,
+ defaultFormatElement16,
+ FormatCode17,
+ FormatDefaultName17,
+ FormatKey17,
+ FormatType17,
+ FormatUsage17,
+ Formatindex17,
+ defaultFormatElement17,
+ FormatCode18,
+ FormatDefaultName18,
+ FormatKey18,
+ FormatType18,
+ FormatUsage18,
+ Formatindex18,
+ defaultFormatElement18,
+ FormatCode19,
+ FormatDefaultName19,
+ FormatKey19,
+ FormatType19,
+ FormatUsage19,
+ Formatindex19,
+ defaultFormatElement19,
+ FormatCode20,
+ FormatDefaultName20,
+ FormatKey20,
+ FormatType20,
+ FormatUsage20,
+ Formatindex20,
+ defaultFormatElement20,
+ FormatCode21,
+ FormatDefaultName21,
+ FormatKey21,
+ FormatType21,
+ FormatUsage21,
+ Formatindex21,
+ defaultFormatElement21,
+ FormatCode22,
+ FormatDefaultName22,
+ FormatKey22,
+ FormatType22,
+ FormatUsage22,
+ Formatindex22,
+ defaultFormatElement22,
+ FormatCode23,
+ FormatDefaultName23,
+ FormatKey23,
+ FormatType23,
+ FormatUsage23,
+ Formatindex23,
+ defaultFormatElement23,
+ FormatCode24,
+ FormatDefaultName24,
+ FormatKey24,
+ FormatType24,
+ FormatUsage24,
+ Formatindex24,
+ defaultFormatElement24,
+ FormatCode25,
+ FormatDefaultName25,
+ FormatKey25,
+ FormatType25,
+ FormatUsage25,
+ Formatindex25,
+ defaultFormatElement25,
+ FormatCode26,
+ FormatDefaultName26,
+ FormatKey26,
+ FormatType26,
+ FormatUsage26,
+ Formatindex26,
+ defaultFormatElement26,
+ FormatCode27,
+ FormatDefaultName27,
+ FormatKey27,
+ FormatType27,
+ FormatUsage27,
+ Formatindex27,
+ defaultFormatElement27,
+ FormatCode28,
+ FormatDefaultName28,
+ FormatKey28,
+ FormatType28,
+ FormatUsage28,
+ Formatindex28,
+ defaultFormatElement28,
+ FormatCode29,
+ FormatDefaultName29,
+ FormatKey29,
+ FormatType29,
+ FormatUsage29,
+ Formatindex29,
+ defaultFormatElement29,
+ FormatCode30,
+ FormatDefaultName30,
+ FormatKey30,
+ FormatType30,
+ FormatUsage30,
+ Formatindex30,
+ defaultFormatElement30,
+ FormatCode31,
+ FormatDefaultName31,
+ FormatKey31,
+ FormatType31,
+ FormatUsage31,
+ Formatindex31,
+ defaultFormatElement31,
+ FormatCode32,
+ FormatDefaultName32,
+ FormatKey32,
+ FormatType32,
+ FormatUsage32,
+ Formatindex32,
+ defaultFormatElement32,
+ FormatCode33,
+ FormatDefaultName33,
+ FormatKey33,
+ FormatType33,
+ FormatUsage33,
+ Formatindex33,
+ defaultFormatElement33,
+ FormatCode34,
+ FormatDefaultName34,
+ FormatKey34,
+ FormatType34,
+ FormatUsage34,
+ Formatindex34,
+ defaultFormatElement34,
+ FormatCode35,
+ FormatDefaultName35,
+ FormatKey35,
+ FormatType35,
+ FormatUsage35,
+ Formatindex35,
+ defaultFormatElement35,
+ FormatCode36,
+ FormatDefaultName36,
+ FormatKey36,
+ FormatType36,
+ FormatUsage36,
+ Formatindex36,
+ defaultFormatElement36,
+ FormatCode37,
+ FormatDefaultName37,
+ FormatKey37,
+ FormatType37,
+ FormatUsage37,
+ Formatindex37,
+ defaultFormatElement37,
+ FormatCode38,
+ FormatDefaultName38,
+ FormatKey38,
+ FormatType38,
+ FormatUsage38,
+ Formatindex38,
+ defaultFormatElement38,
+ FormatCode39,
+ FormatDefaultName39,
+ FormatKey39,
+ FormatType39,
+ FormatUsage39,
+ Formatindex39,
+ defaultFormatElement39,
+ FormatCode40,
+ FormatDefaultName40,
+ FormatKey40,
+ FormatType40,
+ FormatUsage40,
+ Formatindex40,
+ defaultFormatElement40,
+ FormatCode41,
+ FormatDefaultName41,
+ FormatKey41,
+ FormatType41,
+ FormatUsage41,
+ Formatindex41,
+ defaultFormatElement41,
+ FormatCode42,
+ FormatDefaultName42,
+ FormatKey42,
+ FormatType42,
+ FormatUsage42,
+ Formatindex42,
+ defaultFormatElement42,
+ FormatCode43,
+ FormatDefaultName43,
+ FormatKey43,
+ FormatType43,
+ FormatUsage43,
+ Formatindex43,
+ defaultFormatElement43,
+ FormatCode44,
+ FormatDefaultName44,
+ FormatKey44,
+ FormatType44,
+ FormatUsage44,
+ Formatindex44,
+ defaultFormatElement44,
+ FormatCode45,
+ FormatDefaultName45,
+ FormatKey45,
+ FormatType45,
+ FormatUsage45,
+ Formatindex45,
+ defaultFormatElement45,
+ FormatCode46,
+ FormatDefaultName46,
+ FormatKey46,
+ FormatType46,
+ FormatUsage46,
+ Formatindex46,
+ defaultFormatElement46,
+ FormatCode47,
+ FormatDefaultName47,
+ FormatKey47,
+ FormatType47,
+ FormatUsage47,
+ Formatindex47,
+ defaultFormatElement47,
+ FormatCode48,
+ FormatDefaultName48,
+ FormatKey48,
+ FormatType48,
+ FormatUsage48,
+ Formatindex48,
+ defaultFormatElement48,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_GH(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ count = FormatElementsCount0;
+ from = replaceFrom0;
+ to = replaceTo0;
+ return (sal_Unicode**)FormatElementsArray0;
+}
+static const sal_Unicode DateAcceptancePattern0[] = {0x59, 0x2f, 0x4d, 0x2f, 0x44, 0x0};
+static const sal_Unicode DateAcceptancePattern1[] = {0x4d, 0x2f, 0x44, 0x0};
+static const sal_Int16 DateAcceptancePatternsCount = 2;
+static const sal_Unicode* DateAcceptancePatternsArray[] = {
+ DateAcceptancePattern0,
+ DateAcceptancePattern1,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_GH(sal_Int16& count)
+{
+ count = DateAcceptancePatternsCount;
+ return (sal_Unicode**)DateAcceptancePatternsArray;
+}
+static const sal_Unicode CollatorID0[] = {0x61, 0x6c, 0x70, 0x68, 0x61, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x0};
+static const sal_Unicode CollatorRule0[] = {0x0};
+static const sal_Unicode defaultCollator0[] = {1};
+
+static const sal_Unicode collationOption0[] = {0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x0};
+static const sal_Int16 nbOfCollationOptions = 1;
+
+static const sal_Int16 nbOfCollations = 1;
+
+
+static const sal_Unicode* LCCollatorArray[] = {
+ CollatorID0,
+ defaultCollator0,
+ CollatorRule0,
+};
+
+static const sal_Unicode* collationOptions[] = {collationOption0, NULL };
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_GH(sal_Int16& count)
+{
+ count = nbOfCollations;
+ return (sal_Unicode**)LCCollatorArray;
+}
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_GH(sal_Int16& count)
+{
+ count = nbOfCollationOptions;
+ return (sal_Unicode**)collationOptions;
+}
+static const sal_Unicode searchOption0[] = {0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x0};
+static const sal_Int16 nbOfSearchOptions = 1;
+
+static const sal_Unicode* searchOptions[] = {searchOption0, NULL };
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_GH(sal_Int16& count)
+{
+ count = nbOfSearchOptions;
+ return (sal_Unicode**)searchOptions;
+}
+static const sal_Unicode IndexID0[] = {0x61, 0x6c, 0x70, 0x68, 0x61, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x0};
+static const sal_Unicode IndexModule0[] = {0x0};
+static const sal_Unicode IndexKey0[] = {0x41, 0x2d, 0x5a, 0x0};
+static const sal_Unicode defaultIndex0[] = {1};
+static const sal_Unicode defaultPhonetic0[] = {0};
+
+static const sal_Unicode unicodeScript0[] = {0x30, 0x0};
+static const sal_Unicode unicodeScript1[] = {0x31, 0x0};
+static const sal_Unicode followPageWord0[] = {0x70, 0x0};
+static const sal_Unicode followPageWord1[] = {0x70, 0x70, 0x0};
+static const sal_Int16 nbOfIndexs = 1;
+
+
+static const sal_Unicode* IndexArray[] = {
+ IndexID0,
+ IndexModule0,
+ IndexKey0,
+ defaultIndex0,
+ defaultPhonetic0,
+};
+
+static const sal_Int16 nbOfUnicodeScripts = 2;
+
+static const sal_Unicode* UnicodeScriptArray[] = {unicodeScript0, unicodeScript1, NULL };
+
+static const sal_Int16 nbOfPageWords = 2;
+
+static const sal_Unicode* FollowPageWordArray[] = {
+ followPageWord0,
+ followPageWord1,
+ NULL
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_GH(sal_Int16& count)
+{
+ count = nbOfIndexs;
+ return (sal_Unicode**)IndexArray;
+}
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_GH(sal_Int16& count)
+{
+ count = nbOfUnicodeScripts;
+ return (sal_Unicode**)UnicodeScriptArray;
+}
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_GH(sal_Int16& count)
+{
+ count = nbOfPageWords;
+ return (sal_Unicode**)FollowPageWordArray;
+}
+static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode defaultCalendar0[] = {1};
+static const sal_Unicode dayID00[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode dayDefaultAbbrvName00[] = {0x53, 0x75, 0x6e, 0x0};
+static const sal_Unicode dayDefaultFullName00[] = {0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName00[] = {0x53, 0x0};
+static const sal_Unicode dayID01[] = {0x6d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode dayDefaultAbbrvName01[] = {0x4d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode dayDefaultFullName01[] = {0x4d, 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName01[] = {0x4d, 0x0};
+static const sal_Unicode dayID02[] = {0x74, 0x75, 0x65, 0x0};
+static const sal_Unicode dayDefaultAbbrvName02[] = {0x54, 0x75, 0x65, 0x0};
+static const sal_Unicode dayDefaultFullName02[] = {0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName02[] = {0x54, 0x0};
+static const sal_Unicode dayID03[] = {0x77, 0x65, 0x64, 0x0};
+static const sal_Unicode dayDefaultAbbrvName03[] = {0x57, 0x65, 0x64, 0x0};
+static const sal_Unicode dayDefaultFullName03[] = {0x57, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName03[] = {0x57, 0x0};
+static const sal_Unicode dayID04[] = {0x74, 0x68, 0x75, 0x0};
+static const sal_Unicode dayDefaultAbbrvName04[] = {0x54, 0x68, 0x75, 0x0};
+static const sal_Unicode dayDefaultFullName04[] = {0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName04[] = {0x54, 0x0};
+static const sal_Unicode dayID05[] = {0x66, 0x72, 0x69, 0x0};
+static const sal_Unicode dayDefaultAbbrvName05[] = {0x46, 0x72, 0x69, 0x0};
+static const sal_Unicode dayDefaultFullName05[] = {0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName05[] = {0x46, 0x0};
+static const sal_Unicode dayID06[] = {0x73, 0x61, 0x74, 0x0};
+static const sal_Unicode dayDefaultAbbrvName06[] = {0x53, 0x61, 0x74, 0x0};
+static const sal_Unicode dayDefaultFullName06[] = {0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName06[] = {0x53, 0x0};
+static const sal_Unicode monthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode monthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode monthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode monthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode monthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode monthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode monthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode monthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode monthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode monthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode monthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode monthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode monthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode monthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode monthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode monthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode monthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode monthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode monthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode monthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode monthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode monthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode monthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode monthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode monthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode monthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode monthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode monthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode monthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode monthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode monthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode monthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode monthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode monthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode genitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode genitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode genitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode genitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode genitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode genitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode genitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode genitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode genitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode partitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode partitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode partitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode partitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode partitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode partitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode partitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode partitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode partitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode eraID00[] = {0x62, 0x63, 0x0};
+
+static const sal_Unicode eraDefaultAbbrvName00[] = {0x42, 0x43, 0x0};
+static const sal_Unicode eraDefaultFullName00[] = {0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x43, 0x68, 0x72, 0x69, 0x73, 0x74, 0x0};
+static const sal_Unicode eraID01[] = {0x61, 0x64, 0x0};
+
+static const sal_Unicode eraDefaultAbbrvName01[] = {0x41, 0x44, 0x0};
+static const sal_Unicode eraDefaultFullName01[] = {0x41, 0x6e, 0x6e, 0x6f, 0x20, 0x44, 0x6f, 0x6d, 0x69, 0x6e, 0x69, 0x0};
+static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode minimalDaysInFirstWeek0[] = {1};
+static const sal_Int16 calendarsCount = 1;
+
+static const sal_Unicode nbOfDays[] = {7};
+static const sal_Unicode nbOfMonths[] = {12};
+static const sal_Unicode nbOfGenitiveMonths[] = {12};
+static const sal_Unicode nbOfPartitiveMonths[] = {12};
+static const sal_Unicode nbOfEras[] = {2};
+static const sal_Unicode* calendars[] = {
+ nbOfDays,
+ nbOfMonths,
+ nbOfGenitiveMonths,
+ nbOfPartitiveMonths,
+ nbOfEras,
+ calendarID0,
+ defaultCalendar0,
+ dayID00,
+ dayDefaultAbbrvName00,
+ dayDefaultFullName00,
+ dayDefaultNarrowName00,
+ dayID01,
+ dayDefaultAbbrvName01,
+ dayDefaultFullName01,
+ dayDefaultNarrowName01,
+ dayID02,
+ dayDefaultAbbrvName02,
+ dayDefaultFullName02,
+ dayDefaultNarrowName02,
+ dayID03,
+ dayDefaultAbbrvName03,
+ dayDefaultFullName03,
+ dayDefaultNarrowName03,
+ dayID04,
+ dayDefaultAbbrvName04,
+ dayDefaultFullName04,
+ dayDefaultNarrowName04,
+ dayID05,
+ dayDefaultAbbrvName05,
+ dayDefaultFullName05,
+ dayDefaultNarrowName05,
+ dayID06,
+ dayDefaultAbbrvName06,
+ dayDefaultFullName06,
+ dayDefaultNarrowName06,
+ monthID00,
+ monthDefaultAbbrvName00,
+ monthDefaultFullName00,
+ monthDefaultNarrowName00,
+ monthID01,
+ monthDefaultAbbrvName01,
+ monthDefaultFullName01,
+ monthDefaultNarrowName01,
+ monthID02,
+ monthDefaultAbbrvName02,
+ monthDefaultFullName02,
+ monthDefaultNarrowName02,
+ monthID03,
+ monthDefaultAbbrvName03,
+ monthDefaultFullName03,
+ monthDefaultNarrowName03,
+ monthID04,
+ monthDefaultAbbrvName04,
+ monthDefaultFullName04,
+ monthDefaultNarrowName04,
+ monthID05,
+ monthDefaultAbbrvName05,
+ monthDefaultFullName05,
+ monthDefaultNarrowName05,
+ monthID06,
+ monthDefaultAbbrvName06,
+ monthDefaultFullName06,
+ monthDefaultNarrowName06,
+ monthID07,
+ monthDefaultAbbrvName07,
+ monthDefaultFullName07,
+ monthDefaultNarrowName07,
+ monthID08,
+ monthDefaultAbbrvName08,
+ monthDefaultFullName08,
+ monthDefaultNarrowName08,
+ monthID09,
+ monthDefaultAbbrvName09,
+ monthDefaultFullName09,
+ monthDefaultNarrowName09,
+ monthID010,
+ monthDefaultAbbrvName010,
+ monthDefaultFullName010,
+ monthDefaultNarrowName010,
+ monthID011,
+ monthDefaultAbbrvName011,
+ monthDefaultFullName011,
+ monthDefaultNarrowName011,
+ genitiveMonthID00,
+ genitiveMonthDefaultAbbrvName00,
+ genitiveMonthDefaultFullName00,
+ genitiveMonthDefaultNarrowName00,
+ genitiveMonthID01,
+ genitiveMonthDefaultAbbrvName01,
+ genitiveMonthDefaultFullName01,
+ genitiveMonthDefaultNarrowName01,
+ genitiveMonthID02,
+ genitiveMonthDefaultAbbrvName02,
+ genitiveMonthDefaultFullName02,
+ genitiveMonthDefaultNarrowName02,
+ genitiveMonthID03,
+ genitiveMonthDefaultAbbrvName03,
+ genitiveMonthDefaultFullName03,
+ genitiveMonthDefaultNarrowName03,
+ genitiveMonthID04,
+ genitiveMonthDefaultAbbrvName04,
+ genitiveMonthDefaultFullName04,
+ genitiveMonthDefaultNarrowName04,
+ genitiveMonthID05,
+ genitiveMonthDefaultAbbrvName05,
+ genitiveMonthDefaultFullName05,
+ genitiveMonthDefaultNarrowName05,
+ genitiveMonthID06,
+ genitiveMonthDefaultAbbrvName06,
+ genitiveMonthDefaultFullName06,
+ genitiveMonthDefaultNarrowName06,
+ genitiveMonthID07,
+ genitiveMonthDefaultAbbrvName07,
+ genitiveMonthDefaultFullName07,
+ genitiveMonthDefaultNarrowName07,
+ genitiveMonthID08,
+ genitiveMonthDefaultAbbrvName08,
+ genitiveMonthDefaultFullName08,
+ genitiveMonthDefaultNarrowName08,
+ genitiveMonthID09,
+ genitiveMonthDefaultAbbrvName09,
+ genitiveMonthDefaultFullName09,
+ genitiveMonthDefaultNarrowName09,
+ genitiveMonthID010,
+ genitiveMonthDefaultAbbrvName010,
+ genitiveMonthDefaultFullName010,
+ genitiveMonthDefaultNarrowName010,
+ genitiveMonthID011,
+ genitiveMonthDefaultAbbrvName011,
+ genitiveMonthDefaultFullName011,
+ genitiveMonthDefaultNarrowName011,
+ partitiveMonthID00,
+ partitiveMonthDefaultAbbrvName00,
+ partitiveMonthDefaultFullName00,
+ partitiveMonthDefaultNarrowName00,
+ partitiveMonthID01,
+ partitiveMonthDefaultAbbrvName01,
+ partitiveMonthDefaultFullName01,
+ partitiveMonthDefaultNarrowName01,
+ partitiveMonthID02,
+ partitiveMonthDefaultAbbrvName02,
+ partitiveMonthDefaultFullName02,
+ partitiveMonthDefaultNarrowName02,
+ partitiveMonthID03,
+ partitiveMonthDefaultAbbrvName03,
+ partitiveMonthDefaultFullName03,
+ partitiveMonthDefaultNarrowName03,
+ partitiveMonthID04,
+ partitiveMonthDefaultAbbrvName04,
+ partitiveMonthDefaultFullName04,
+ partitiveMonthDefaultNarrowName04,
+ partitiveMonthID05,
+ partitiveMonthDefaultAbbrvName05,
+ partitiveMonthDefaultFullName05,
+ partitiveMonthDefaultNarrowName05,
+ partitiveMonthID06,
+ partitiveMonthDefaultAbbrvName06,
+ partitiveMonthDefaultFullName06,
+ partitiveMonthDefaultNarrowName06,
+ partitiveMonthID07,
+ partitiveMonthDefaultAbbrvName07,
+ partitiveMonthDefaultFullName07,
+ partitiveMonthDefaultNarrowName07,
+ partitiveMonthID08,
+ partitiveMonthDefaultAbbrvName08,
+ partitiveMonthDefaultFullName08,
+ partitiveMonthDefaultNarrowName08,
+ partitiveMonthID09,
+ partitiveMonthDefaultAbbrvName09,
+ partitiveMonthDefaultFullName09,
+ partitiveMonthDefaultNarrowName09,
+ partitiveMonthID010,
+ partitiveMonthDefaultAbbrvName010,
+ partitiveMonthDefaultFullName010,
+ partitiveMonthDefaultNarrowName010,
+ partitiveMonthID011,
+ partitiveMonthDefaultAbbrvName011,
+ partitiveMonthDefaultFullName011,
+ partitiveMonthDefaultNarrowName011,
+ eraID00,
+ eraDefaultAbbrvName00,
+ eraDefaultFullName00,
+ eraID01,
+ eraDefaultAbbrvName01,
+ eraDefaultFullName01,
+ startDayOfWeek0,
+ minimalDaysInFirstWeek0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_GH(sal_Int16& count)
+{
+ count = calendarsCount;
+ return (sal_Unicode**)calendars;
+}
+static const sal_Unicode defaultCurrency0[] = {0};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1};
+static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0};
+static const sal_Unicode currencyID0[] = {0x47, 0x48, 0x43, 0x0};
+static const sal_Unicode currencySymbol0[] = {0x20b5, 0x0};
+static const sal_Unicode bankSymbol0[] = {0x47, 0x48, 0x43, 0x0};
+static const sal_Unicode currencyName0[] = {0x43, 0x65, 0x64, 0x69, 0x0};
+static const sal_Unicode currencyDecimalPlaces0[] = {2};
+
+static const sal_Unicode defaultCurrency1[] = {1};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes1[] = {0};
+static const sal_Unicode defaultCurrencyLegacyOnly1[] = {0};
+static const sal_Unicode currencyID1[] = {0x47, 0x48, 0x53, 0x0};
+static const sal_Unicode currencySymbol1[] = {0x47, 0x48, 0x20b5, 0x0};
+static const sal_Unicode bankSymbol1[] = {0x47, 0x48, 0x53, 0x0};
+static const sal_Unicode currencyName1[] = {0x47, 0x68, 0x61, 0x6e, 0x61, 0x20, 0x43, 0x65, 0x64, 0x69, 0x0};
+static const sal_Unicode currencyDecimalPlaces1[] = {2};
+
+static const sal_Int16 currencyCount = 2;
+
+static const sal_Unicode* currencies[] = {
+ currencyID0,
+ currencySymbol0,
+ bankSymbol0,
+ currencyName0,
+ defaultCurrency0,
+ defaultCurrencyUsedInCompatibleFormatCodes0,
+ currencyDecimalPlaces0,
+ defaultCurrencyLegacyOnly0,
+ currencyID1,
+ currencySymbol1,
+ bankSymbol1,
+ currencyName1,
+ defaultCurrency1,
+ defaultCurrencyUsedInCompatibleFormatCodes1,
+ currencyDecimalPlaces1,
+ defaultCurrencyLegacyOnly1,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_GH(sal_Int16& count)
+{
+ count = currencyCount;
+ return (sal_Unicode**)currencies;
+}
+extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_GH(sal_Int16& count)
+{
+ return getTransliterations_en_US(count);
+}
+static const sal_Unicode ReservedWord0[] = {0x54, 0x72, 0x75, 0x65, 0x0};
+static const sal_Unicode ReservedWord1[] = {0x46, 0x61, 0x6c, 0x73, 0x65, 0x0};
+static const sal_Unicode ReservedWord2[] = {0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x20, 0x31, 0x0};
+static const sal_Unicode ReservedWord3[] = {0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x20, 0x32, 0x0};
+static const sal_Unicode ReservedWord4[] = {0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x20, 0x33, 0x0};
+static const sal_Unicode ReservedWord5[] = {0x51, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x20, 0x34, 0x0};
+static const sal_Unicode ReservedWord6[] = {0x41, 0x62, 0x6f, 0x76, 0x65, 0x0};
+static const sal_Unicode ReservedWord7[] = {0x42, 0x65, 0x6c, 0x6f, 0x77, 0x0};
+static const sal_Unicode ReservedWord8[] = {0x51, 0x31, 0x0};
+static const sal_Unicode ReservedWord9[] = {0x51, 0x32, 0x0};
+static const sal_Unicode ReservedWord10[] = {0x51, 0x33, 0x0};
+static const sal_Unicode ReservedWord11[] = {0x51, 0x34, 0x0};
+static const sal_Int16 nbOfReservedWords = 12;
+
+
+static const sal_Unicode* LCReservedWordsArray[] = {
+ ReservedWord0,
+ ReservedWord1,
+ ReservedWord2,
+ ReservedWord3,
+ ReservedWord4,
+ ReservedWord5,
+ ReservedWord6,
+ ReservedWord7,
+ ReservedWord8,
+ ReservedWord9,
+ ReservedWord10,
+ ReservedWord11,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_GH(sal_Int16& count)
+{
+ count = nbOfReservedWords;
+ return (sal_Unicode**)LCReservedWordsArray;
+}
+static const sal_Unicode forbiddenBegin[] = {0x0};
+static const sal_Unicode forbiddenEnd[] = {0x0};
+static const sal_Unicode hangingChars[] = {0x0};
+
+static const sal_Unicode* LCForbiddenCharactersArray[] = {
+ forbiddenBegin,
+ forbiddenEnd,
+ hangingChars
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_GH(sal_Int16& count)
+{
+ count = 3;
+ return (sal_Unicode**)LCForbiddenCharactersArray;
+}
+static const sal_Unicode EditMode[] = {0x0};
+static const sal_Unicode DictionaryMode[] = {0x0};
+static const sal_Unicode WordCountMode[] = {0x0};
+static const sal_Unicode CharacterMode[] = {0x0};
+static const sal_Unicode LineMode[] = {0x0};
+
+static const sal_Unicode* LCBreakIteratorRulesArray[] = {
+ EditMode,
+ DictionaryMode,
+ WordCountMode,
+ CharacterMode,
+ LineMode
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_GH(sal_Int16& count)
+{
+ count = 5;
+ return (sal_Unicode**)LCBreakIteratorRulesArray;
+}
+// ---> ContinuousNumbering
+static const sal_Unicode continuousPrefix0[] = {0x0};
+static const sal_Unicode continuousNumType0[] = {0x34, 0x0};
+static const sal_Unicode continuousSuffix0[] = {0x29, 0x0};
+static const sal_Unicode continuousTransliteration0[] = {0x0};
+static const sal_Unicode continuousNatNum0[] = {0x0};
+static const sal_Unicode continuousPrefix1[] = {0x0};
+static const sal_Unicode continuousNumType1[] = {0x34, 0x0};
+static const sal_Unicode continuousSuffix1[] = {0x2e, 0x0};
+static const sal_Unicode continuousTransliteration1[] = {0x0};
+static const sal_Unicode continuousNatNum1[] = {0x0};
+static const sal_Unicode continuousPrefix2[] = {0x28, 0x0};
+static const sal_Unicode continuousNumType2[] = {0x34, 0x0};
+static const sal_Unicode continuousSuffix2[] = {0x29, 0x0};
+static const sal_Unicode continuousTransliteration2[] = {0x0};
+static const sal_Unicode continuousNatNum2[] = {0x0};
+static const sal_Unicode continuousPrefix3[] = {0x0};
+static const sal_Unicode continuousNumType3[] = {0x32, 0x0};
+static const sal_Unicode continuousSuffix3[] = {0x2e, 0x0};
+static const sal_Unicode continuousTransliteration3[] = {0x0};
+static const sal_Unicode continuousNatNum3[] = {0x0};
+static const sal_Unicode continuousPrefix4[] = {0x0};
+static const sal_Unicode continuousNumType4[] = {0x30, 0x0};
+static const sal_Unicode continuousSuffix4[] = {0x29, 0x0};
+static const sal_Unicode continuousTransliteration4[] = {0x0};
+static const sal_Unicode continuousNatNum4[] = {0x0};
+static const sal_Unicode continuousPrefix5[] = {0x0};
+static const sal_Unicode continuousNumType5[] = {0x31, 0x0};
+static const sal_Unicode continuousSuffix5[] = {0x29, 0x0};
+static const sal_Unicode continuousTransliteration5[] = {0x0};
+static const sal_Unicode continuousNatNum5[] = {0x0};
+static const sal_Unicode continuousPrefix6[] = {0x28, 0x0};
+static const sal_Unicode continuousNumType6[] = {0x31, 0x0};
+static const sal_Unicode continuousSuffix6[] = {0x29, 0x0};
+static const sal_Unicode continuousTransliteration6[] = {0x0};
+static const sal_Unicode continuousNatNum6[] = {0x0};
+static const sal_Unicode continuousPrefix7[] = {0x0};
+static const sal_Unicode continuousNumType7[] = {0x33, 0x0};
+static const sal_Unicode continuousSuffix7[] = {0x2e, 0x0};
+static const sal_Unicode continuousTransliteration7[] = {0x0};
+static const sal_Unicode continuousNatNum7[] = {0x0};
+static const sal_Int16 continuousNbOfStyles = 8;
+
+static const sal_Int16 continuousNbOfAttributesPerStyle = 5;
+
+
+static const sal_Unicode* continuousStyle0[] = {
+ continuousPrefix0,
+ continuousNumType0,
+ continuousSuffix0,
+ continuousTransliteration0,
+ continuousNatNum0,
+ 0
+};
+
+
+static const sal_Unicode* continuousStyle1[] = {
+ continuousPrefix1,
+ continuousNumType1,
+ continuousSuffix1,
+ continuousTransliteration1,
+ continuousNatNum1,
+ 0
+};
+
+
+static const sal_Unicode* continuousStyle2[] = {
+ continuousPrefix2,
+ continuousNumType2,
+ continuousSuffix2,
+ continuousTransliteration2,
+ continuousNatNum2,
+ 0
+};
+
+
+static const sal_Unicode* continuousStyle3[] = {
+ continuousPrefix3,
+ continuousNumType3,
+ continuousSuffix3,
+ continuousTransliteration3,
+ continuousNatNum3,
+ 0
+};
+
+
+static const sal_Unicode* continuousStyle4[] = {
+ continuousPrefix4,
+ continuousNumType4,
+ continuousSuffix4,
+ continuousTransliteration4,
+ continuousNatNum4,
+ 0
+};
+
+
+static const sal_Unicode* continuousStyle5[] = {
+ continuousPrefix5,
+ continuousNumType5,
+ continuousSuffix5,
+ continuousTransliteration5,
+ continuousNatNum5,
+ 0
+};
+
+
+static const sal_Unicode* continuousStyle6[] = {
+ continuousPrefix6,
+ continuousNumType6,
+ continuousSuffix6,
+ continuousTransliteration6,
+ continuousNatNum6,
+ 0
+};
+
+
+static const sal_Unicode* continuousStyle7[] = {
+ continuousPrefix7,
+ continuousNumType7,
+ continuousSuffix7,
+ continuousTransliteration7,
+ continuousNatNum7,
+ 0
+};
+
+
+static const sal_Unicode** LCContinuousNumberingLevelsArray[] = {
+ continuousStyle0,
+ continuousStyle1,
+ continuousStyle2,
+ continuousStyle3,
+ continuousStyle4,
+ continuousStyle5,
+ continuousStyle6,
+ continuousStyle7,
+ 0
+};
+
+SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_GH( sal_Int16& nStyles, sal_Int16& nAttributes )
+{
+ nStyles = continuousNbOfStyles;
+ nAttributes = continuousNbOfAttributesPerStyle;
+ return LCContinuousNumberingLevelsArray;
+}
+// ---> OutlineNumbering
+extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_GH(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)
+{
+ return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes);
+}
+} // extern "C"
+
diff --git a/vcl/workben/localestub/localedata_en_GM.cxx b/vcl/workben/localestub/localedata_en_GM.cxx
new file mode 100644
index 000000000..318e82e3f
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_GM.cxx
@@ -0,0 +1,140 @@
+#include <sal/types.h>
+
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = {0x65, 0x6e, 0x0};
+static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0};
+static const sal_Unicode countryID[] = {0x47, 0x4d, 0x0};
+static const sal_Unicode countryDefaultName[] = {0x47, 0x61, 0x6d, 0x62, 0x69, 0x61, 0x0};
+static const sal_Unicode Variant[] = {0x0};
+
+static const sal_Unicode* LCInfoArray[] = {
+ langID,
+ langDefaultName,
+ countryID,
+ countryDefaultName,
+ Variant
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_GM(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCInfoArray;
+}
+extern sal_Unicode ** SAL_CALL getLocaleItem_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_GM(sal_Int16& count)
+{
+ return getLocaleItem_en_GB(count);
+}
+static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x44, 0x2d, 0x39, 0x30, 0x30, 0x39, 0x5d, 0x0};
+extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_GB(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to);
+SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_GM(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ to = replaceTo0;
+ const sal_Unicode* tmp;
+ return getAllFormats0_en_GB(count, from, tmp);
+}
+extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_GM(sal_Int16& count)
+{
+ return getDateAcceptancePatterns_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_GM(sal_Int16& count)
+{
+ return getCollatorImplementation_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getCollationOptions_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_GM(sal_Int16& count)
+{
+ return getCollationOptions_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getSearchOptions_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_GM(sal_Int16& count)
+{
+ return getSearchOptions_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_GM(sal_Int16& count)
+{
+ return getIndexAlgorithm_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_GM(sal_Int16& count)
+{
+ return getUnicodeScripts_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getFollowPageWords_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_GM(sal_Int16& count)
+{
+ return getFollowPageWords_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getAllCalendars_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_GM(sal_Int16& count)
+{
+ return getAllCalendars_en_GB(count);
+}
+static const sal_Unicode defaultCurrency0[] = {1};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1};
+static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0};
+static const sal_Unicode currencyID0[] = {0x47, 0x4d, 0x44, 0x0};
+static const sal_Unicode currencySymbol0[] = {0x44, 0x0};
+static const sal_Unicode bankSymbol0[] = {0x47, 0x4d, 0x44, 0x0};
+static const sal_Unicode currencyName0[] = {0x44, 0x61, 0x6c, 0x61, 0x73, 0x69, 0x0};
+static const sal_Unicode currencyDecimalPlaces0[] = {2};
+
+static const sal_Int16 currencyCount = 1;
+
+static const sal_Unicode* currencies[] = {
+ currencyID0,
+ currencySymbol0,
+ bankSymbol0,
+ currencyName0,
+ defaultCurrency0,
+ defaultCurrencyUsedInCompatibleFormatCodes0,
+ currencyDecimalPlaces0,
+ defaultCurrencyLegacyOnly0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_GM(sal_Int16& count)
+{
+ count = currencyCount;
+ return (sal_Unicode**)currencies;
+}
+extern sal_Unicode ** SAL_CALL getTransliterations_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_GM(sal_Int16& count)
+{
+ return getTransliterations_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_GM(sal_Int16& count)
+{
+ return getForbiddenCharacters_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_GM(sal_Int16& count)
+{
+ return getBreakIteratorRules_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getReservedWords_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_GM(sal_Int16& count)
+{
+ return getReservedWords_en_GB(count);
+}
+// ---> ContinuousNumbering
+extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_GB(sal_Int16& nStyles, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_GM(sal_Int16& nStyles, sal_Int16& nAttributes)
+{
+ return getContinuousNumberingLevels_en_GB(nStyles, nAttributes);
+}
+// ---> OutlineNumbering
+extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_GB(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_GM(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)
+{
+ return getOutlineNumberingLevels_en_GB(nStyles, nLevels, nAttributes);
+}
+} // extern "C"
+
diff --git a/vcl/workben/localestub/localedata_en_IE.cxx b/vcl/workben/localestub/localedata_en_IE.cxx
new file mode 100644
index 000000000..358890fdd
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_IE.cxx
@@ -0,0 +1,259 @@
+#include <sal/types.h>
+
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = {0x65, 0x6e, 0x0};
+static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0};
+static const sal_Unicode countryID[] = {0x49, 0x45, 0x0};
+static const sal_Unicode countryDefaultName[] = {0x49, 0x72, 0x65, 0x6c, 0x61, 0x6e, 0x64, 0x0};
+static const sal_Unicode Variant[] = {0x0};
+
+static const sal_Unicode* LCInfoArray[] = {
+ langID,
+ langDefaultName,
+ countryID,
+ countryDefaultName,
+ Variant
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_IE(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCInfoArray;
+}
+
+
+static const sal_Unicode LC_CTYPE_Unoid[] = {0x0};
+static const sal_Unicode dateSeparator[] = {0x2f, 0x0};
+static const sal_Unicode thousandSeparator[] = {0x2c, 0x0};
+static const sal_Unicode decimalSeparator[] = {0x2e, 0x0};
+static const sal_Unicode timeSeparator[] = {0x3a, 0x0};
+static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0};
+static const sal_Unicode listSeparator[] = {0x3b, 0x0};
+static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateDaySeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0};
+static const sal_Unicode quotationStart[] = {0x2018, 0x0};
+static const sal_Unicode quotationEnd[] = {0x2019, 0x0};
+static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0};
+static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0};
+static const sal_Unicode timeAM[] = {0x61, 0x2e, 0x6d, 0x2e, 0x0};
+static const sal_Unicode timePM[] = {0x70, 0x2e, 0x6d, 0x2e, 0x0};
+static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0};
+
+static const sal_Unicode* LCType[] = {
+ LC_CTYPE_Unoid,
+ dateSeparator,
+ thousandSeparator,
+ decimalSeparator,
+ timeSeparator,
+ time100SecSeparator,
+ listSeparator,
+ quotationStart,
+ quotationEnd,
+ doubleQuotationStart,
+ doubleQuotationEnd,
+ timeAM,
+ timePM,
+ measurementSystem,
+ LongDateDayOfWeekSeparator,
+ LongDateDaySeparator,
+ LongDateMonthSeparator,
+ LongDateYearSeparator
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_IE(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCType;
+}
+static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x49, 0x52, 0xa3, 0x2d, 0x31, 0x38, 0x30, 0x39, 0x5d, 0x0};
+extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_GB(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to);
+SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_IE(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ to = replaceTo0;
+ const sal_Unicode* tmp;
+ return getAllFormats0_en_GB(count, from, tmp);
+}
+extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_IE(sal_Int16& count)
+{
+ return getDateAcceptancePatterns_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_IE(sal_Int16& count)
+{
+ return getCollatorImplementation_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_IE(sal_Int16& count)
+{
+ return getCollationOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_IE(sal_Int16& count)
+{
+ return getSearchOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_IE(sal_Int16& count)
+{
+ return getIndexAlgorithm_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_IE(sal_Int16& count)
+{
+ return getUnicodeScripts_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_IE(sal_Int16& count)
+{
+ return getFollowPageWords_en_US(count);
+}
+static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode defaultCalendar0[] = {1};
+static const sal_Unicode dayRef0[] = {0x72, 0x65, 0x66, 0x0};
+static const sal_Unicode dayRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthRef0[] = {0x72, 0x65, 0x66, 0x0};
+static const sal_Unicode monthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthRef0[] = {0x72, 0x65, 0x66, 0x0};
+static const sal_Unicode genitiveMonthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthRef0[] = {0x72, 0x65, 0x66, 0x0};
+static const sal_Unicode partitiveMonthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode eraRef0[] = {0x72, 0x65, 0x66, 0x0};
+static const sal_Unicode eraRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode minimalDaysInFirstWeek0[] = {1};
+static const sal_Int16 calendarsCount = 1;
+
+static const sal_Unicode nbOfDays[] = {0};
+static const sal_Unicode nbOfMonths[] = {0};
+static const sal_Unicode nbOfGenitiveMonths[] = {0};
+static const sal_Unicode nbOfPartitiveMonths[] = {0};
+static const sal_Unicode nbOfEras[] = {0};
+static const sal_Unicode* calendars[] = {
+ nbOfDays,
+ nbOfMonths,
+ nbOfGenitiveMonths,
+ nbOfPartitiveMonths,
+ nbOfEras,
+ calendarID0,
+ defaultCalendar0,
+ dayRef0,
+ dayRefName0,
+ monthRef0,
+ monthRefName0,
+ genitiveMonthRef0,
+ genitiveMonthRefName0,
+ partitiveMonthRef0,
+ partitiveMonthRefName0,
+ eraRef0,
+ eraRefName0,
+ startDayOfWeek0,
+ minimalDaysInFirstWeek0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_IE(sal_Int16& count)
+{
+ count = calendarsCount;
+ return (sal_Unicode**)calendars;
+}
+static const sal_Unicode defaultCurrency0[] = {1};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {0};
+static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0};
+static const sal_Unicode currencyID0[] = {0x45, 0x55, 0x52, 0x0};
+static const sal_Unicode currencySymbol0[] = {0x20ac, 0x0};
+static const sal_Unicode bankSymbol0[] = {0x45, 0x55, 0x52, 0x0};
+static const sal_Unicode currencyName0[] = {0x45, 0x75, 0x72, 0x6f, 0x0};
+static const sal_Unicode currencyDecimalPlaces0[] = {2};
+
+static const sal_Unicode defaultCurrency1[] = {0};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes1[] = {1};
+static const sal_Unicode defaultCurrencyLegacyOnly1[] = {0};
+static const sal_Unicode currencyID1[] = {0x49, 0x45, 0x50, 0x0};
+static const sal_Unicode currencySymbol1[] = {0x49, 0x52, 0xa3, 0x0};
+static const sal_Unicode bankSymbol1[] = {0x49, 0x45, 0x50, 0x0};
+static const sal_Unicode currencyName1[] = {0x49, 0x72, 0x69, 0x73, 0x68, 0x20, 0x50, 0x6f, 0x75, 0x6e, 0x64, 0x0};
+static const sal_Unicode currencyDecimalPlaces1[] = {2};
+
+static const sal_Unicode defaultCurrency2[] = {0};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes2[] = {0};
+static const sal_Unicode defaultCurrencyLegacyOnly2[] = {0};
+static const sal_Unicode currencyID2[] = {0x47, 0x42, 0x50, 0x0};
+static const sal_Unicode currencySymbol2[] = {0xa3, 0x0};
+static const sal_Unicode bankSymbol2[] = {0x47, 0x42, 0x50, 0x0};
+static const sal_Unicode currencyName2[] = {0x42, 0x72, 0x69, 0x74, 0x69, 0x73, 0x68, 0x20, 0x50, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x53, 0x74, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x67, 0x0};
+static const sal_Unicode currencyDecimalPlaces2[] = {2};
+
+static const sal_Int16 currencyCount = 3;
+
+static const sal_Unicode* currencies[] = {
+ currencyID0,
+ currencySymbol0,
+ bankSymbol0,
+ currencyName0,
+ defaultCurrency0,
+ defaultCurrencyUsedInCompatibleFormatCodes0,
+ currencyDecimalPlaces0,
+ defaultCurrencyLegacyOnly0,
+ currencyID1,
+ currencySymbol1,
+ bankSymbol1,
+ currencyName1,
+ defaultCurrency1,
+ defaultCurrencyUsedInCompatibleFormatCodes1,
+ currencyDecimalPlaces1,
+ defaultCurrencyLegacyOnly1,
+ currencyID2,
+ currencySymbol2,
+ bankSymbol2,
+ currencyName2,
+ defaultCurrency2,
+ defaultCurrencyUsedInCompatibleFormatCodes2,
+ currencyDecimalPlaces2,
+ defaultCurrencyLegacyOnly2,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_IE(sal_Int16& count)
+{
+ count = currencyCount;
+ return (sal_Unicode**)currencies;
+}
+extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_IE(sal_Int16& count)
+{
+ return getTransliterations_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_IE(sal_Int16& count)
+{
+ return getForbiddenCharacters_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_IE(sal_Int16& count)
+{
+ return getBreakIteratorRules_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_IE(sal_Int16& count)
+{
+ return getReservedWords_en_US(count);
+}
+// ---> ContinuousNumbering
+extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_IE(sal_Int16& nStyles, sal_Int16& nAttributes)
+{
+ return getContinuousNumberingLevels_en_US(nStyles, nAttributes);
+}
+// ---> OutlineNumbering
+extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_IE(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)
+{
+ return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes);
+}
+} // extern "C"
+
diff --git a/vcl/workben/localestub/localedata_en_IN.cxx b/vcl/workben/localestub/localedata_en_IN.cxx
new file mode 100644
index 000000000..2fdd21e71
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_IN.cxx
@@ -0,0 +1,200 @@
+#include <sal/types.h>
+
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = {0x65, 0x6e, 0x0};
+static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0};
+static const sal_Unicode countryID[] = {0x49, 0x4e, 0x0};
+static const sal_Unicode countryDefaultName[] = {0x49, 0x6e, 0x64, 0x69, 0x61, 0x0};
+static const sal_Unicode Variant[] = {0x0};
+
+static const sal_Unicode* LCInfoArray[] = {
+ langID,
+ langDefaultName,
+ countryID,
+ countryDefaultName,
+ Variant
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_IN(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCInfoArray;
+}
+extern sal_Unicode ** SAL_CALL getLocaleItem_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_IN(sal_Int16& count)
+{
+ return getLocaleItem_en_GB(count);
+}
+static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x20b9, 0x2d, 0x34, 0x30, 0x30, 0x39, 0x5d, 0x0};
+extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_GB(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to);
+SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_IN(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ to = replaceTo0;
+ const sal_Unicode* tmp;
+ return getAllFormats0_en_GB(count, from, tmp);
+}
+extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_IN(sal_Int16& count)
+{
+ return getDateAcceptancePatterns_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_IN(sal_Int16& count)
+{
+ return getCollatorImplementation_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_IN(sal_Int16& count)
+{
+ return getCollationOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_IN(sal_Int16& count)
+{
+ return getSearchOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_IN(sal_Int16& count)
+{
+ return getIndexAlgorithm_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_IN(sal_Int16& count)
+{
+ return getUnicodeScripts_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_IN(sal_Int16& count)
+{
+ return getFollowPageWords_en_US(count);
+}
+static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode defaultCalendar0[] = {1};
+static const sal_Unicode dayRef0[] = {0x72, 0x65, 0x66, 0x0};
+static const sal_Unicode dayRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthRef0[] = {0x72, 0x65, 0x66, 0x0};
+static const sal_Unicode monthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthRef0[] = {0x72, 0x65, 0x66, 0x0};
+static const sal_Unicode genitiveMonthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthRef0[] = {0x72, 0x65, 0x66, 0x0};
+static const sal_Unicode partitiveMonthRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode eraRef0[] = {0x72, 0x65, 0x66, 0x0};
+static const sal_Unicode eraRefName0[] = {0x65, 0x6e, 0x5f, 0x55, 0x53, 0x5f, 0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode startDayOfWeek0[] = {0x6d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode minimalDaysInFirstWeek0[] = {1};
+static const sal_Int16 calendarsCount = 1;
+
+static const sal_Unicode nbOfDays[] = {0};
+static const sal_Unicode nbOfMonths[] = {0};
+static const sal_Unicode nbOfGenitiveMonths[] = {0};
+static const sal_Unicode nbOfPartitiveMonths[] = {0};
+static const sal_Unicode nbOfEras[] = {0};
+static const sal_Unicode* calendars[] = {
+ nbOfDays,
+ nbOfMonths,
+ nbOfGenitiveMonths,
+ nbOfPartitiveMonths,
+ nbOfEras,
+ calendarID0,
+ defaultCalendar0,
+ dayRef0,
+ dayRefName0,
+ monthRef0,
+ monthRefName0,
+ genitiveMonthRef0,
+ genitiveMonthRefName0,
+ partitiveMonthRef0,
+ partitiveMonthRefName0,
+ eraRef0,
+ eraRefName0,
+ startDayOfWeek0,
+ minimalDaysInFirstWeek0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_IN(sal_Int16& count)
+{
+ count = calendarsCount;
+ return (sal_Unicode**)calendars;
+}
+static const sal_Unicode defaultCurrency0[] = {1};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1};
+static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0};
+static const sal_Unicode currencyID0[] = {0x49, 0x4e, 0x52, 0x0};
+static const sal_Unicode currencySymbol0[] = {0x20b9, 0x0};
+static const sal_Unicode bankSymbol0[] = {0x49, 0x4e, 0x52, 0x0};
+static const sal_Unicode currencyName0[] = {0x52, 0x75, 0x70, 0x65, 0x65, 0x0};
+static const sal_Unicode currencyDecimalPlaces0[] = {2};
+
+static const sal_Unicode defaultCurrency1[] = {0};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes1[] = {0};
+static const sal_Unicode defaultCurrencyLegacyOnly1[] = {1};
+static const sal_Unicode currencyID1[] = {0x49, 0x4e, 0x52, 0x0};
+static const sal_Unicode currencySymbol1[] = {0x52, 0x73, 0x2e, 0x0};
+static const sal_Unicode bankSymbol1[] = {0x49, 0x4e, 0x52, 0x0};
+static const sal_Unicode currencyName1[] = {0x49, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x20, 0x52, 0x75, 0x70, 0x65, 0x65, 0x0};
+static const sal_Unicode currencyDecimalPlaces1[] = {2};
+
+static const sal_Int16 currencyCount = 2;
+
+static const sal_Unicode* currencies[] = {
+ currencyID0,
+ currencySymbol0,
+ bankSymbol0,
+ currencyName0,
+ defaultCurrency0,
+ defaultCurrencyUsedInCompatibleFormatCodes0,
+ currencyDecimalPlaces0,
+ defaultCurrencyLegacyOnly0,
+ currencyID1,
+ currencySymbol1,
+ bankSymbol1,
+ currencyName1,
+ defaultCurrency1,
+ defaultCurrencyUsedInCompatibleFormatCodes1,
+ currencyDecimalPlaces1,
+ defaultCurrencyLegacyOnly1,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_IN(sal_Int16& count)
+{
+ count = currencyCount;
+ return (sal_Unicode**)currencies;
+}
+extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_IN(sal_Int16& count)
+{
+ return getTransliterations_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_IN(sal_Int16& count)
+{
+ return getForbiddenCharacters_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_IN(sal_Int16& count)
+{
+ return getBreakIteratorRules_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_IN(sal_Int16& count)
+{
+ return getReservedWords_en_US(count);
+}
+// ---> ContinuousNumbering
+extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_IN(sal_Int16& nStyles, sal_Int16& nAttributes)
+{
+ return getContinuousNumberingLevels_en_US(nStyles, nAttributes);
+}
+// ---> OutlineNumbering
+extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_IN(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)
+{
+ return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes);
+}
+} // extern "C"
+
diff --git a/vcl/workben/localestub/localedata_en_JM.cxx b/vcl/workben/localestub/localedata_en_JM.cxx
new file mode 100644
index 000000000..bcd6245e6
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_JM.cxx
@@ -0,0 +1,1263 @@
+#include <sal/types.h>
+
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = {0x65, 0x6e, 0x0};
+static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0};
+static const sal_Unicode countryID[] = {0x4a, 0x4d, 0x0};
+static const sal_Unicode countryDefaultName[] = {0x4a, 0x61, 0x6d, 0x61, 0x69, 0x63, 0x61, 0x0};
+static const sal_Unicode Variant[] = {0x0};
+
+static const sal_Unicode* LCInfoArray[] = {
+ langID,
+ langDefaultName,
+ countryID,
+ countryDefaultName,
+ Variant
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_JM(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCInfoArray;
+}
+
+
+static const sal_Unicode LC_CTYPE_Unoid[] = {0x0};
+static const sal_Unicode dateSeparator[] = {0x2f, 0x0};
+static const sal_Unicode thousandSeparator[] = {0x2c, 0x0};
+static const sal_Unicode decimalSeparator[] = {0x2e, 0x0};
+static const sal_Unicode timeSeparator[] = {0x3a, 0x0};
+static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0};
+static const sal_Unicode listSeparator[] = {0x3b, 0x0};
+static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x2c, 0x20, 0x0};
+static const sal_Unicode LongDateDaySeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateMonthSeparator[] = {0x2c, 0x0};
+static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0};
+static const sal_Unicode quotationStart[] = {0x2018, 0x0};
+static const sal_Unicode quotationEnd[] = {0x2019, 0x0};
+static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0};
+static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0};
+static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0};
+static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0};
+static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0};
+
+static const sal_Unicode* LCType[] = {
+ LC_CTYPE_Unoid,
+ dateSeparator,
+ thousandSeparator,
+ decimalSeparator,
+ timeSeparator,
+ time100SecSeparator,
+ listSeparator,
+ quotationStart,
+ quotationEnd,
+ doubleQuotationStart,
+ doubleQuotationEnd,
+ timeAM,
+ timePM,
+ measurementSystem,
+ LongDateDayOfWeekSeparator,
+ LongDateDaySeparator,
+ LongDateMonthSeparator,
+ LongDateYearSeparator
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_JM(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCType;
+}
+static const sal_Unicode replaceFrom0[] = {0x0};
+static const sal_Unicode replaceTo0[] = {0x0};
+static const sal_Unicode FormatKey0[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement0[] = {1};
+static const sal_Unicode FormatType0[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage0[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex0[] = {0};
+static const sal_Unicode FormatCode0[] = {0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0};
+static const sal_Unicode FormatDefaultName0[] = {0x0};
+static const sal_Unicode FormatKey1[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement1[] = {1};
+static const sal_Unicode FormatType1[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage1[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex1[] = {1};
+static const sal_Unicode FormatCode1[] = {0x30, 0x0};
+static const sal_Unicode FormatDefaultName1[] = {0x0};
+static const sal_Unicode FormatKey2[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement2[] = {0};
+static const sal_Unicode FormatType2[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage2[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex2[] = {2};
+static const sal_Unicode FormatCode2[] = {0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName2[] = {0x0};
+static const sal_Unicode FormatKey3[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement3[] = {0};
+static const sal_Unicode FormatType3[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage3[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex3[] = {3};
+static const sal_Unicode FormatCode3[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName3[] = {0x0};
+static const sal_Unicode FormatKey4[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement4[] = {0};
+static const sal_Unicode FormatType4[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage4[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex4[] = {4};
+static const sal_Unicode FormatCode4[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName4[] = {0x0};
+static const sal_Unicode FormatKey5[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement5[] = {0};
+static const sal_Unicode FormatType5[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage5[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex5[] = {5};
+static const sal_Unicode FormatCode5[] = {0x23, 0x2c, 0x23, 0x23, 0x23, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName5[] = {0x0};
+static const sal_Unicode FormatKey6[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement6[] = {0};
+static const sal_Unicode FormatType6[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage6[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex6[] = {70};
+static const sal_Unicode FormatCode6[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x29, 0x0};
+static const sal_Unicode FormatDefaultName6[] = {0x0};
+static const sal_Unicode FormatKey7[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement7[] = {0};
+static const sal_Unicode FormatType7[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage7[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex7[] = {71};
+static const sal_Unicode FormatCode7[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x29, 0x0};
+static const sal_Unicode FormatDefaultName7[] = {0x0};
+static const sal_Unicode FormatKey8[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement8[] = {0};
+static const sal_Unicode FormatType8[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage8[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex8[] = {6};
+static const sal_Unicode FormatCode8[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName8[] = {0x0};
+static const sal_Unicode FormatKey9[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement9[] = {1};
+static const sal_Unicode FormatType9[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage9[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex9[] = {7};
+static const sal_Unicode FormatCode9[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName9[] = {0x0};
+static const sal_Unicode FormatKey10[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement10[] = {0};
+static const sal_Unicode FormatType10[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage10[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex10[] = {78};
+static const sal_Unicode FormatCode10[] = {0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName10[] = {0x0};
+static const sal_Unicode FormatKey11[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement11[] = {1};
+static const sal_Unicode FormatType11[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage11[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex11[] = {8};
+static const sal_Unicode FormatCode11[] = {0x30, 0x25, 0x0};
+static const sal_Unicode FormatDefaultName11[] = {0x0};
+static const sal_Unicode FormatKey12[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement12[] = {1};
+static const sal_Unicode FormatType12[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage12[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex12[] = {9};
+static const sal_Unicode FormatCode12[] = {0x30, 0x2e, 0x30, 0x30, 0x25, 0x0};
+static const sal_Unicode FormatDefaultName12[] = {0x0};
+static const sal_Unicode FormatKey13[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement13[] = {1};
+static const sal_Unicode FormatType13[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage13[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex13[] = {12};
+static const sal_Unicode FormatCode13[] = {0x5b, 0x24, 0x4a, 0x24, 0x2d, 0x32, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x2d, 0x5b, 0x24, 0x4a, 0x24, 0x2d, 0x32, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName13[] = {0x0};
+static const sal_Unicode FormatKey14[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement14[] = {0};
+static const sal_Unicode FormatType14[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage14[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex14[] = {13};
+static const sal_Unicode FormatCode14[] = {0x5b, 0x24, 0x4a, 0x24, 0x2d, 0x32, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x2d, 0x5b, 0x24, 0x4a, 0x24, 0x2d, 0x32, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName14[] = {0x0};
+static const sal_Unicode FormatKey15[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement15[] = {0};
+static const sal_Unicode FormatType15[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage15[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex15[] = {14};
+static const sal_Unicode FormatCode15[] = {0x5b, 0x24, 0x4a, 0x24, 0x2d, 0x32, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x24, 0x4a, 0x24, 0x2d, 0x32, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName15[] = {0x0};
+static const sal_Unicode FormatKey16[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement16[] = {1};
+static const sal_Unicode FormatType16[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage16[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex16[] = {15};
+static const sal_Unicode FormatCode16[] = {0x5b, 0x24, 0x4a, 0x24, 0x2d, 0x32, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x24, 0x4a, 0x24, 0x2d, 0x32, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName16[] = {0x0};
+static const sal_Unicode FormatKey17[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement17[] = {0};
+static const sal_Unicode FormatType17[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage17[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex17[] = {16};
+static const sal_Unicode FormatCode17[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x20, 0x43, 0x43, 0x43, 0x0};
+static const sal_Unicode FormatDefaultName17[] = {0x0};
+static const sal_Unicode FormatKey18[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement18[] = {0};
+static const sal_Unicode FormatType18[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage18[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex18[] = {17};
+static const sal_Unicode FormatCode18[] = {0x5b, 0x24, 0x4a, 0x24, 0x2d, 0x32, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x24, 0x4a, 0x24, 0x2d, 0x32, 0x30, 0x30, 0x39, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x0};
+static const sal_Unicode FormatDefaultName18[] = {0x0};
+static const sal_Unicode FormatKey19[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement19[] = {1};
+static const sal_Unicode FormatType19[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage19[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex19[] = {18};
+static const sal_Unicode FormatCode19[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName19[] = {0x0};
+static const sal_Unicode FormatKey20[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x39, 0x0};
+static const sal_Unicode defaultFormatElement20[] = {1};
+static const sal_Unicode FormatType20[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage20[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex20[] = {19};
+static const sal_Unicode FormatCode20[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x44, 0x2c, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName20[] = {0x0};
+static const sal_Unicode FormatKey21[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement21[] = {1};
+static const sal_Unicode FormatType21[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage21[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex21[] = {20};
+static const sal_Unicode FormatCode21[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName21[] = {0x0};
+static const sal_Unicode FormatKey22[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement22[] = {0};
+static const sal_Unicode FormatType22[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage22[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex22[] = {21};
+static const sal_Unicode FormatCode22[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName22[] = {0x0};
+static const sal_Unicode FormatKey23[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x30, 0x0};
+static const sal_Unicode defaultFormatElement23[] = {0};
+static const sal_Unicode FormatType23[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage23[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex23[] = {22};
+static const sal_Unicode FormatCode23[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName23[] = {0x0};
+static const sal_Unicode FormatKey24[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement24[] = {0};
+static const sal_Unicode FormatType24[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage24[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex24[] = {23};
+static const sal_Unicode FormatCode24[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName24[] = {0x0};
+static const sal_Unicode FormatKey25[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement25[] = {0};
+static const sal_Unicode FormatType25[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage25[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex25[] = {24};
+static const sal_Unicode FormatCode25[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x2e, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName25[] = {0x0};
+static const sal_Unicode FormatKey26[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement26[] = {0};
+static const sal_Unicode FormatType26[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage26[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex26[] = {25};
+static const sal_Unicode FormatCode26[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName26[] = {0x0};
+static const sal_Unicode FormatKey27[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement27[] = {0};
+static const sal_Unicode FormatType27[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage27[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex27[] = {26};
+static const sal_Unicode FormatCode27[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName27[] = {0x0};
+static const sal_Unicode FormatKey28[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement28[] = {0};
+static const sal_Unicode FormatType28[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage28[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex28[] = {27};
+static const sal_Unicode FormatCode28[] = {0x4e, 0x4e, 0x2c, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName28[] = {0x0};
+static const sal_Unicode FormatKey29[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement29[] = {0};
+static const sal_Unicode FormatType29[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage29[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex29[] = {28};
+static const sal_Unicode FormatCode29[] = {0x4e, 0x4e, 0x20, 0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName29[] = {0x0};
+static const sal_Unicode FormatKey30[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement30[] = {0};
+static const sal_Unicode FormatType30[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage30[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex30[] = {29};
+static const sal_Unicode FormatCode30[] = {0x4e, 0x4e, 0x2c, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName30[] = {0x0};
+static const sal_Unicode FormatKey31[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement31[] = {0};
+static const sal_Unicode FormatType31[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage31[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex31[] = {30};
+static const sal_Unicode FormatCode31[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName31[] = {0x0};
+static const sal_Unicode FormatKey32[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement32[] = {0};
+static const sal_Unicode FormatType32[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage32[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex32[] = {31};
+static const sal_Unicode FormatCode32[] = {0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName32[] = {0x0};
+static const sal_Unicode FormatKey33[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x39, 0x0};
+static const sal_Unicode defaultFormatElement33[] = {0};
+static const sal_Unicode FormatType33[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage33[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex33[] = {32};
+static const sal_Unicode FormatCode33[] = {0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName33[] = {0x0};
+static const sal_Unicode FormatKey34[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x30, 0x0};
+static const sal_Unicode defaultFormatElement34[] = {0};
+static const sal_Unicode FormatType34[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage34[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex34[] = {33};
+static const sal_Unicode FormatCode34[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName34[] = {0x49, 0x53, 0x4f, 0x20, 0x38, 0x36, 0x30, 0x31, 0x0};
+static const sal_Unicode FormatKey35[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement35[] = {0};
+static const sal_Unicode FormatType35[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage35[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex35[] = {34};
+static const sal_Unicode FormatCode35[] = {0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName35[] = {0x0};
+static const sal_Unicode FormatKey36[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement36[] = {0};
+static const sal_Unicode FormatType36[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage36[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex36[] = {35};
+static const sal_Unicode FormatCode36[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName36[] = {0x0};
+static const sal_Unicode FormatKey37[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement37[] = {0};
+static const sal_Unicode FormatType37[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage37[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex37[] = {36};
+static const sal_Unicode FormatCode37[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName37[] = {0x0};
+static const sal_Unicode FormatKey38[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement38[] = {0};
+static const sal_Unicode FormatType38[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage38[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex38[] = {37};
+static const sal_Unicode FormatCode38[] = {0x51, 0x51, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName38[] = {0x0};
+static const sal_Unicode FormatKey39[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement39[] = {0};
+static const sal_Unicode FormatType39[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage39[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex39[] = {38};
+static const sal_Unicode FormatCode39[] = {0x57, 0x57, 0x0};
+static const sal_Unicode FormatDefaultName39[] = {0x0};
+static const sal_Unicode FormatKey40[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement40[] = {1};
+static const sal_Unicode FormatType40[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage40[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex40[] = {39};
+static const sal_Unicode FormatCode40[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName40[] = {0x0};
+static const sal_Unicode FormatKey41[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement41[] = {1};
+static const sal_Unicode FormatType41[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage41[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex41[] = {40};
+static const sal_Unicode FormatCode41[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName41[] = {0x0};
+static const sal_Unicode FormatKey42[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement42[] = {0};
+static const sal_Unicode FormatType42[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage42[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex42[] = {41};
+static const sal_Unicode FormatCode42[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName42[] = {0x0};
+static const sal_Unicode FormatKey43[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement43[] = {0};
+static const sal_Unicode FormatType43[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage43[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex43[] = {42};
+static const sal_Unicode FormatCode43[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName43[] = {0x0};
+static const sal_Unicode FormatKey44[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement44[] = {0};
+static const sal_Unicode FormatType44[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage44[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex44[] = {43};
+static const sal_Unicode FormatCode44[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName44[] = {0x0};
+static const sal_Unicode FormatKey45[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement45[] = {0};
+static const sal_Unicode FormatType45[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage45[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex45[] = {44};
+static const sal_Unicode FormatCode45[] = {0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName45[] = {0x0};
+static const sal_Unicode FormatKey46[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement46[] = {0};
+static const sal_Unicode FormatType46[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage46[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex46[] = {45};
+static const sal_Unicode FormatCode46[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName46[] = {0x0};
+static const sal_Unicode FormatKey47[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement47[] = {1};
+static const sal_Unicode FormatType47[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage47[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex47[] = {46};
+static const sal_Unicode FormatCode47[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName47[] = {0x0};
+static const sal_Unicode FormatKey48[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement48[] = {0};
+static const sal_Unicode FormatType48[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage48[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex48[] = {47};
+static const sal_Unicode FormatCode48[] = {0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x59, 0x59, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName48[] = {0x0};
+
+static const sal_Int16 FormatElementsCount0 = 49;
+static const sal_Unicode* FormatElementsArray0[] = {
+ FormatCode0,
+ FormatDefaultName0,
+ FormatKey0,
+ FormatType0,
+ FormatUsage0,
+ Formatindex0,
+ defaultFormatElement0,
+ FormatCode1,
+ FormatDefaultName1,
+ FormatKey1,
+ FormatType1,
+ FormatUsage1,
+ Formatindex1,
+ defaultFormatElement1,
+ FormatCode2,
+ FormatDefaultName2,
+ FormatKey2,
+ FormatType2,
+ FormatUsage2,
+ Formatindex2,
+ defaultFormatElement2,
+ FormatCode3,
+ FormatDefaultName3,
+ FormatKey3,
+ FormatType3,
+ FormatUsage3,
+ Formatindex3,
+ defaultFormatElement3,
+ FormatCode4,
+ FormatDefaultName4,
+ FormatKey4,
+ FormatType4,
+ FormatUsage4,
+ Formatindex4,
+ defaultFormatElement4,
+ FormatCode5,
+ FormatDefaultName5,
+ FormatKey5,
+ FormatType5,
+ FormatUsage5,
+ Formatindex5,
+ defaultFormatElement5,
+ FormatCode6,
+ FormatDefaultName6,
+ FormatKey6,
+ FormatType6,
+ FormatUsage6,
+ Formatindex6,
+ defaultFormatElement6,
+ FormatCode7,
+ FormatDefaultName7,
+ FormatKey7,
+ FormatType7,
+ FormatUsage7,
+ Formatindex7,
+ defaultFormatElement7,
+ FormatCode8,
+ FormatDefaultName8,
+ FormatKey8,
+ FormatType8,
+ FormatUsage8,
+ Formatindex8,
+ defaultFormatElement8,
+ FormatCode9,
+ FormatDefaultName9,
+ FormatKey9,
+ FormatType9,
+ FormatUsage9,
+ Formatindex9,
+ defaultFormatElement9,
+ FormatCode10,
+ FormatDefaultName10,
+ FormatKey10,
+ FormatType10,
+ FormatUsage10,
+ Formatindex10,
+ defaultFormatElement10,
+ FormatCode11,
+ FormatDefaultName11,
+ FormatKey11,
+ FormatType11,
+ FormatUsage11,
+ Formatindex11,
+ defaultFormatElement11,
+ FormatCode12,
+ FormatDefaultName12,
+ FormatKey12,
+ FormatType12,
+ FormatUsage12,
+ Formatindex12,
+ defaultFormatElement12,
+ FormatCode13,
+ FormatDefaultName13,
+ FormatKey13,
+ FormatType13,
+ FormatUsage13,
+ Formatindex13,
+ defaultFormatElement13,
+ FormatCode14,
+ FormatDefaultName14,
+ FormatKey14,
+ FormatType14,
+ FormatUsage14,
+ Formatindex14,
+ defaultFormatElement14,
+ FormatCode15,
+ FormatDefaultName15,
+ FormatKey15,
+ FormatType15,
+ FormatUsage15,
+ Formatindex15,
+ defaultFormatElement15,
+ FormatCode16,
+ FormatDefaultName16,
+ FormatKey16,
+ FormatType16,
+ FormatUsage16,
+ Formatindex16,
+ defaultFormatElement16,
+ FormatCode17,
+ FormatDefaultName17,
+ FormatKey17,
+ FormatType17,
+ FormatUsage17,
+ Formatindex17,
+ defaultFormatElement17,
+ FormatCode18,
+ FormatDefaultName18,
+ FormatKey18,
+ FormatType18,
+ FormatUsage18,
+ Formatindex18,
+ defaultFormatElement18,
+ FormatCode19,
+ FormatDefaultName19,
+ FormatKey19,
+ FormatType19,
+ FormatUsage19,
+ Formatindex19,
+ defaultFormatElement19,
+ FormatCode20,
+ FormatDefaultName20,
+ FormatKey20,
+ FormatType20,
+ FormatUsage20,
+ Formatindex20,
+ defaultFormatElement20,
+ FormatCode21,
+ FormatDefaultName21,
+ FormatKey21,
+ FormatType21,
+ FormatUsage21,
+ Formatindex21,
+ defaultFormatElement21,
+ FormatCode22,
+ FormatDefaultName22,
+ FormatKey22,
+ FormatType22,
+ FormatUsage22,
+ Formatindex22,
+ defaultFormatElement22,
+ FormatCode23,
+ FormatDefaultName23,
+ FormatKey23,
+ FormatType23,
+ FormatUsage23,
+ Formatindex23,
+ defaultFormatElement23,
+ FormatCode24,
+ FormatDefaultName24,
+ FormatKey24,
+ FormatType24,
+ FormatUsage24,
+ Formatindex24,
+ defaultFormatElement24,
+ FormatCode25,
+ FormatDefaultName25,
+ FormatKey25,
+ FormatType25,
+ FormatUsage25,
+ Formatindex25,
+ defaultFormatElement25,
+ FormatCode26,
+ FormatDefaultName26,
+ FormatKey26,
+ FormatType26,
+ FormatUsage26,
+ Formatindex26,
+ defaultFormatElement26,
+ FormatCode27,
+ FormatDefaultName27,
+ FormatKey27,
+ FormatType27,
+ FormatUsage27,
+ Formatindex27,
+ defaultFormatElement27,
+ FormatCode28,
+ FormatDefaultName28,
+ FormatKey28,
+ FormatType28,
+ FormatUsage28,
+ Formatindex28,
+ defaultFormatElement28,
+ FormatCode29,
+ FormatDefaultName29,
+ FormatKey29,
+ FormatType29,
+ FormatUsage29,
+ Formatindex29,
+ defaultFormatElement29,
+ FormatCode30,
+ FormatDefaultName30,
+ FormatKey30,
+ FormatType30,
+ FormatUsage30,
+ Formatindex30,
+ defaultFormatElement30,
+ FormatCode31,
+ FormatDefaultName31,
+ FormatKey31,
+ FormatType31,
+ FormatUsage31,
+ Formatindex31,
+ defaultFormatElement31,
+ FormatCode32,
+ FormatDefaultName32,
+ FormatKey32,
+ FormatType32,
+ FormatUsage32,
+ Formatindex32,
+ defaultFormatElement32,
+ FormatCode33,
+ FormatDefaultName33,
+ FormatKey33,
+ FormatType33,
+ FormatUsage33,
+ Formatindex33,
+ defaultFormatElement33,
+ FormatCode34,
+ FormatDefaultName34,
+ FormatKey34,
+ FormatType34,
+ FormatUsage34,
+ Formatindex34,
+ defaultFormatElement34,
+ FormatCode35,
+ FormatDefaultName35,
+ FormatKey35,
+ FormatType35,
+ FormatUsage35,
+ Formatindex35,
+ defaultFormatElement35,
+ FormatCode36,
+ FormatDefaultName36,
+ FormatKey36,
+ FormatType36,
+ FormatUsage36,
+ Formatindex36,
+ defaultFormatElement36,
+ FormatCode37,
+ FormatDefaultName37,
+ FormatKey37,
+ FormatType37,
+ FormatUsage37,
+ Formatindex37,
+ defaultFormatElement37,
+ FormatCode38,
+ FormatDefaultName38,
+ FormatKey38,
+ FormatType38,
+ FormatUsage38,
+ Formatindex38,
+ defaultFormatElement38,
+ FormatCode39,
+ FormatDefaultName39,
+ FormatKey39,
+ FormatType39,
+ FormatUsage39,
+ Formatindex39,
+ defaultFormatElement39,
+ FormatCode40,
+ FormatDefaultName40,
+ FormatKey40,
+ FormatType40,
+ FormatUsage40,
+ Formatindex40,
+ defaultFormatElement40,
+ FormatCode41,
+ FormatDefaultName41,
+ FormatKey41,
+ FormatType41,
+ FormatUsage41,
+ Formatindex41,
+ defaultFormatElement41,
+ FormatCode42,
+ FormatDefaultName42,
+ FormatKey42,
+ FormatType42,
+ FormatUsage42,
+ Formatindex42,
+ defaultFormatElement42,
+ FormatCode43,
+ FormatDefaultName43,
+ FormatKey43,
+ FormatType43,
+ FormatUsage43,
+ Formatindex43,
+ defaultFormatElement43,
+ FormatCode44,
+ FormatDefaultName44,
+ FormatKey44,
+ FormatType44,
+ FormatUsage44,
+ Formatindex44,
+ defaultFormatElement44,
+ FormatCode45,
+ FormatDefaultName45,
+ FormatKey45,
+ FormatType45,
+ FormatUsage45,
+ Formatindex45,
+ defaultFormatElement45,
+ FormatCode46,
+ FormatDefaultName46,
+ FormatKey46,
+ FormatType46,
+ FormatUsage46,
+ Formatindex46,
+ defaultFormatElement46,
+ FormatCode47,
+ FormatDefaultName47,
+ FormatKey47,
+ FormatType47,
+ FormatUsage47,
+ Formatindex47,
+ defaultFormatElement47,
+ FormatCode48,
+ FormatDefaultName48,
+ FormatKey48,
+ FormatType48,
+ FormatUsage48,
+ Formatindex48,
+ defaultFormatElement48,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_JM(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ count = FormatElementsCount0;
+ from = replaceFrom0;
+ to = replaceTo0;
+ return (sal_Unicode**)FormatElementsArray0;
+}
+static const sal_Unicode DateAcceptancePattern0[] = {0x44, 0x2f, 0x4d, 0x2f, 0x59, 0x0};
+static const sal_Unicode DateAcceptancePattern1[] = {0x44, 0x2f, 0x4d, 0x0};
+static const sal_Int16 DateAcceptancePatternsCount = 2;
+static const sal_Unicode* DateAcceptancePatternsArray[] = {
+ DateAcceptancePattern0,
+ DateAcceptancePattern1,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_JM(sal_Int16& count)
+{
+ count = DateAcceptancePatternsCount;
+ return (sal_Unicode**)DateAcceptancePatternsArray;
+}
+extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_JM(sal_Int16& count)
+{
+ return getCollatorImplementation_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_JM(sal_Int16& count)
+{
+ return getCollationOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_JM(sal_Int16& count)
+{
+ return getSearchOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_JM(sal_Int16& count)
+{
+ return getIndexAlgorithm_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_JM(sal_Int16& count)
+{
+ return getUnicodeScripts_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_JM(sal_Int16& count)
+{
+ return getFollowPageWords_en_US(count);
+}
+static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode defaultCalendar0[] = {1};
+static const sal_Unicode dayID00[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode dayDefaultAbbrvName00[] = {0x53, 0x75, 0x6e, 0x0};
+static const sal_Unicode dayDefaultFullName00[] = {0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName00[] = {0x53, 0x0};
+static const sal_Unicode dayID01[] = {0x6d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode dayDefaultAbbrvName01[] = {0x4d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode dayDefaultFullName01[] = {0x4d, 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName01[] = {0x4d, 0x0};
+static const sal_Unicode dayID02[] = {0x74, 0x75, 0x65, 0x0};
+static const sal_Unicode dayDefaultAbbrvName02[] = {0x54, 0x75, 0x65, 0x0};
+static const sal_Unicode dayDefaultFullName02[] = {0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName02[] = {0x54, 0x0};
+static const sal_Unicode dayID03[] = {0x77, 0x65, 0x64, 0x0};
+static const sal_Unicode dayDefaultAbbrvName03[] = {0x57, 0x65, 0x64, 0x0};
+static const sal_Unicode dayDefaultFullName03[] = {0x57, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName03[] = {0x57, 0x0};
+static const sal_Unicode dayID04[] = {0x74, 0x68, 0x75, 0x0};
+static const sal_Unicode dayDefaultAbbrvName04[] = {0x54, 0x68, 0x75, 0x0};
+static const sal_Unicode dayDefaultFullName04[] = {0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName04[] = {0x54, 0x0};
+static const sal_Unicode dayID05[] = {0x66, 0x72, 0x69, 0x0};
+static const sal_Unicode dayDefaultAbbrvName05[] = {0x46, 0x72, 0x69, 0x0};
+static const sal_Unicode dayDefaultFullName05[] = {0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName05[] = {0x46, 0x0};
+static const sal_Unicode dayID06[] = {0x73, 0x61, 0x74, 0x0};
+static const sal_Unicode dayDefaultAbbrvName06[] = {0x53, 0x61, 0x74, 0x0};
+static const sal_Unicode dayDefaultFullName06[] = {0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName06[] = {0x53, 0x0};
+static const sal_Unicode monthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode monthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode monthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode monthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode monthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode monthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode monthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode monthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode monthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode monthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode monthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode monthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode monthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode monthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode monthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode monthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode monthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode monthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode monthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode monthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode monthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode monthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode monthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode monthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode monthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode monthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode monthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode monthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode monthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode monthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode monthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode monthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode monthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode monthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode genitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode genitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode genitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode genitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode genitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode genitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode genitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode genitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode genitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode partitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode partitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode partitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode partitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode partitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode partitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode partitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode partitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode partitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode eraID00[] = {0x62, 0x63, 0x0};
+
+static const sal_Unicode eraDefaultAbbrvName00[] = {0x42, 0x43, 0x0};
+static const sal_Unicode eraDefaultFullName00[] = {0x42, 0x43, 0x0};
+static const sal_Unicode eraID01[] = {0x61, 0x64, 0x0};
+
+static const sal_Unicode eraDefaultAbbrvName01[] = {0x41, 0x44, 0x0};
+static const sal_Unicode eraDefaultFullName01[] = {0x41, 0x44, 0x0};
+static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode minimalDaysInFirstWeek0[] = {1};
+static const sal_Int16 calendarsCount = 1;
+
+static const sal_Unicode nbOfDays[] = {7};
+static const sal_Unicode nbOfMonths[] = {12};
+static const sal_Unicode nbOfGenitiveMonths[] = {12};
+static const sal_Unicode nbOfPartitiveMonths[] = {12};
+static const sal_Unicode nbOfEras[] = {2};
+static const sal_Unicode* calendars[] = {
+ nbOfDays,
+ nbOfMonths,
+ nbOfGenitiveMonths,
+ nbOfPartitiveMonths,
+ nbOfEras,
+ calendarID0,
+ defaultCalendar0,
+ dayID00,
+ dayDefaultAbbrvName00,
+ dayDefaultFullName00,
+ dayDefaultNarrowName00,
+ dayID01,
+ dayDefaultAbbrvName01,
+ dayDefaultFullName01,
+ dayDefaultNarrowName01,
+ dayID02,
+ dayDefaultAbbrvName02,
+ dayDefaultFullName02,
+ dayDefaultNarrowName02,
+ dayID03,
+ dayDefaultAbbrvName03,
+ dayDefaultFullName03,
+ dayDefaultNarrowName03,
+ dayID04,
+ dayDefaultAbbrvName04,
+ dayDefaultFullName04,
+ dayDefaultNarrowName04,
+ dayID05,
+ dayDefaultAbbrvName05,
+ dayDefaultFullName05,
+ dayDefaultNarrowName05,
+ dayID06,
+ dayDefaultAbbrvName06,
+ dayDefaultFullName06,
+ dayDefaultNarrowName06,
+ monthID00,
+ monthDefaultAbbrvName00,
+ monthDefaultFullName00,
+ monthDefaultNarrowName00,
+ monthID01,
+ monthDefaultAbbrvName01,
+ monthDefaultFullName01,
+ monthDefaultNarrowName01,
+ monthID02,
+ monthDefaultAbbrvName02,
+ monthDefaultFullName02,
+ monthDefaultNarrowName02,
+ monthID03,
+ monthDefaultAbbrvName03,
+ monthDefaultFullName03,
+ monthDefaultNarrowName03,
+ monthID04,
+ monthDefaultAbbrvName04,
+ monthDefaultFullName04,
+ monthDefaultNarrowName04,
+ monthID05,
+ monthDefaultAbbrvName05,
+ monthDefaultFullName05,
+ monthDefaultNarrowName05,
+ monthID06,
+ monthDefaultAbbrvName06,
+ monthDefaultFullName06,
+ monthDefaultNarrowName06,
+ monthID07,
+ monthDefaultAbbrvName07,
+ monthDefaultFullName07,
+ monthDefaultNarrowName07,
+ monthID08,
+ monthDefaultAbbrvName08,
+ monthDefaultFullName08,
+ monthDefaultNarrowName08,
+ monthID09,
+ monthDefaultAbbrvName09,
+ monthDefaultFullName09,
+ monthDefaultNarrowName09,
+ monthID010,
+ monthDefaultAbbrvName010,
+ monthDefaultFullName010,
+ monthDefaultNarrowName010,
+ monthID011,
+ monthDefaultAbbrvName011,
+ monthDefaultFullName011,
+ monthDefaultNarrowName011,
+ genitiveMonthID00,
+ genitiveMonthDefaultAbbrvName00,
+ genitiveMonthDefaultFullName00,
+ genitiveMonthDefaultNarrowName00,
+ genitiveMonthID01,
+ genitiveMonthDefaultAbbrvName01,
+ genitiveMonthDefaultFullName01,
+ genitiveMonthDefaultNarrowName01,
+ genitiveMonthID02,
+ genitiveMonthDefaultAbbrvName02,
+ genitiveMonthDefaultFullName02,
+ genitiveMonthDefaultNarrowName02,
+ genitiveMonthID03,
+ genitiveMonthDefaultAbbrvName03,
+ genitiveMonthDefaultFullName03,
+ genitiveMonthDefaultNarrowName03,
+ genitiveMonthID04,
+ genitiveMonthDefaultAbbrvName04,
+ genitiveMonthDefaultFullName04,
+ genitiveMonthDefaultNarrowName04,
+ genitiveMonthID05,
+ genitiveMonthDefaultAbbrvName05,
+ genitiveMonthDefaultFullName05,
+ genitiveMonthDefaultNarrowName05,
+ genitiveMonthID06,
+ genitiveMonthDefaultAbbrvName06,
+ genitiveMonthDefaultFullName06,
+ genitiveMonthDefaultNarrowName06,
+ genitiveMonthID07,
+ genitiveMonthDefaultAbbrvName07,
+ genitiveMonthDefaultFullName07,
+ genitiveMonthDefaultNarrowName07,
+ genitiveMonthID08,
+ genitiveMonthDefaultAbbrvName08,
+ genitiveMonthDefaultFullName08,
+ genitiveMonthDefaultNarrowName08,
+ genitiveMonthID09,
+ genitiveMonthDefaultAbbrvName09,
+ genitiveMonthDefaultFullName09,
+ genitiveMonthDefaultNarrowName09,
+ genitiveMonthID010,
+ genitiveMonthDefaultAbbrvName010,
+ genitiveMonthDefaultFullName010,
+ genitiveMonthDefaultNarrowName010,
+ genitiveMonthID011,
+ genitiveMonthDefaultAbbrvName011,
+ genitiveMonthDefaultFullName011,
+ genitiveMonthDefaultNarrowName011,
+ partitiveMonthID00,
+ partitiveMonthDefaultAbbrvName00,
+ partitiveMonthDefaultFullName00,
+ partitiveMonthDefaultNarrowName00,
+ partitiveMonthID01,
+ partitiveMonthDefaultAbbrvName01,
+ partitiveMonthDefaultFullName01,
+ partitiveMonthDefaultNarrowName01,
+ partitiveMonthID02,
+ partitiveMonthDefaultAbbrvName02,
+ partitiveMonthDefaultFullName02,
+ partitiveMonthDefaultNarrowName02,
+ partitiveMonthID03,
+ partitiveMonthDefaultAbbrvName03,
+ partitiveMonthDefaultFullName03,
+ partitiveMonthDefaultNarrowName03,
+ partitiveMonthID04,
+ partitiveMonthDefaultAbbrvName04,
+ partitiveMonthDefaultFullName04,
+ partitiveMonthDefaultNarrowName04,
+ partitiveMonthID05,
+ partitiveMonthDefaultAbbrvName05,
+ partitiveMonthDefaultFullName05,
+ partitiveMonthDefaultNarrowName05,
+ partitiveMonthID06,
+ partitiveMonthDefaultAbbrvName06,
+ partitiveMonthDefaultFullName06,
+ partitiveMonthDefaultNarrowName06,
+ partitiveMonthID07,
+ partitiveMonthDefaultAbbrvName07,
+ partitiveMonthDefaultFullName07,
+ partitiveMonthDefaultNarrowName07,
+ partitiveMonthID08,
+ partitiveMonthDefaultAbbrvName08,
+ partitiveMonthDefaultFullName08,
+ partitiveMonthDefaultNarrowName08,
+ partitiveMonthID09,
+ partitiveMonthDefaultAbbrvName09,
+ partitiveMonthDefaultFullName09,
+ partitiveMonthDefaultNarrowName09,
+ partitiveMonthID010,
+ partitiveMonthDefaultAbbrvName010,
+ partitiveMonthDefaultFullName010,
+ partitiveMonthDefaultNarrowName010,
+ partitiveMonthID011,
+ partitiveMonthDefaultAbbrvName011,
+ partitiveMonthDefaultFullName011,
+ partitiveMonthDefaultNarrowName011,
+ eraID00,
+ eraDefaultAbbrvName00,
+ eraDefaultFullName00,
+ eraID01,
+ eraDefaultAbbrvName01,
+ eraDefaultFullName01,
+ startDayOfWeek0,
+ minimalDaysInFirstWeek0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_JM(sal_Int16& count)
+{
+ count = calendarsCount;
+ return (sal_Unicode**)calendars;
+}
+static const sal_Unicode defaultCurrency0[] = {1};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1};
+static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0};
+static const sal_Unicode currencyID0[] = {0x4a, 0x4d, 0x44, 0x0};
+static const sal_Unicode currencySymbol0[] = {0x4a, 0x24, 0x0};
+static const sal_Unicode bankSymbol0[] = {0x4a, 0x4d, 0x44, 0x0};
+static const sal_Unicode currencyName0[] = {0x4a, 0x61, 0x6d, 0x61, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x0};
+static const sal_Unicode currencyDecimalPlaces0[] = {2};
+
+static const sal_Int16 currencyCount = 1;
+
+static const sal_Unicode* currencies[] = {
+ currencyID0,
+ currencySymbol0,
+ bankSymbol0,
+ currencyName0,
+ defaultCurrency0,
+ defaultCurrencyUsedInCompatibleFormatCodes0,
+ currencyDecimalPlaces0,
+ defaultCurrencyLegacyOnly0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_JM(sal_Int16& count)
+{
+ count = currencyCount;
+ return (sal_Unicode**)currencies;
+}
+extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_JM(sal_Int16& count)
+{
+ return getTransliterations_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_JM(sal_Int16& count)
+{
+ return getForbiddenCharacters_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_JM(sal_Int16& count)
+{
+ return getBreakIteratorRules_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_JM(sal_Int16& count)
+{
+ return getReservedWords_en_US(count);
+}
+// ---> ContinuousNumbering
+extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_JM(sal_Int16& nStyles, sal_Int16& nAttributes)
+{
+ return getContinuousNumberingLevels_en_US(nStyles, nAttributes);
+}
+// ---> OutlineNumbering
+extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_JM(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)
+{
+ return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes);
+}
+} // extern "C"
+
diff --git a/vcl/workben/localestub/localedata_en_LK.cxx b/vcl/workben/localestub/localedata_en_LK.cxx
new file mode 100644
index 000000000..aa71f3abd
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_LK.cxx
@@ -0,0 +1,144 @@
+#include <sal/types.h>
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = { 0x65, 0x6e, 0x0 };
+static const sal_Unicode langDefaultName[] = { 0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0 };
+static const sal_Unicode countryID[] = { 0x4c, 0x4b, 0x0 };
+static const sal_Unicode countryDefaultName[]
+ = { 0x53, 0x72, 0x69, 0x20, 0x4c, 0x61, 0x6e, 0x6b, 0x61, 0x0 };
+static const sal_Unicode Variant[] = { 0x0 };
+
+static const sal_Unicode* LCInfoArray[]
+ = { langID, langDefaultName, countryID, countryDefaultName, Variant };
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getLCInfo_en_LK(sal_Int16& count)
+{
+ count = SAL_N_ELEMENTS(LCInfoArray);
+ return (sal_Unicode**)LCInfoArray;
+}
+extern sal_Unicode** SAL_CALL getLocaleItem_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getLocaleItem_en_LK(sal_Int16& count)
+{
+ return getLocaleItem_en_GB(count);
+}
+static const sal_Unicode replaceTo0[]
+ = { 0x5b, 0x24, 0x52, 0x73, 0x2d, 0x41, 0x34, 0x30, 0x39, 0x5d, 0x0 };
+extern sal_Unicode const* const* SAL_CALL getAllFormats0_en_GB(sal_Int16& count,
+ const sal_Unicode*& from,
+ const sal_Unicode*& to);
+SAL_DLLPUBLIC_EXPORT sal_Unicode const* const* SAL_CALL
+getAllFormats0_en_LK(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ to = replaceTo0;
+ const sal_Unicode* tmp;
+ return getAllFormats0_en_GB(count, from, tmp);
+}
+extern sal_Unicode** SAL_CALL getDateAcceptancePatterns_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getDateAcceptancePatterns_en_LK(sal_Int16& count)
+{
+ return getDateAcceptancePatterns_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getCollatorImplementation_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getCollatorImplementation_en_LK(sal_Int16& count)
+{
+ return getCollatorImplementation_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getCollationOptions_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getCollationOptions_en_LK(sal_Int16& count)
+{
+ return getCollationOptions_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getSearchOptions_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getSearchOptions_en_LK(sal_Int16& count)
+{
+ return getSearchOptions_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getIndexAlgorithm_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getIndexAlgorithm_en_LK(sal_Int16& count)
+{
+ return getIndexAlgorithm_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getUnicodeScripts_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getUnicodeScripts_en_LK(sal_Int16& count)
+{
+ return getUnicodeScripts_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getFollowPageWords_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getFollowPageWords_en_LK(sal_Int16& count)
+{
+ return getFollowPageWords_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getAllCalendars_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getAllCalendars_en_LK(sal_Int16& count)
+{
+ return getAllCalendars_en_GB(count);
+}
+static const sal_Unicode defaultCurrency0[] = { 1 };
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = { 1 };
+static const sal_Unicode defaultCurrencyLegacyOnly0[] = { 0 };
+static const sal_Unicode currencyID0[] = { 0x4c, 0x4b, 0x52, 0x0 };
+static const sal_Unicode currencySymbol0[] = { 0x52, 0x73, 0x0 };
+static const sal_Unicode bankSymbol0[] = { 0x4c, 0x4b, 0x52, 0x0 };
+static const sal_Unicode currencyName0[] = { 0x53, 0x72, 0x69, 0x20, 0x4c, 0x61, 0x6e, 0x6b, 0x61,
+ 0x6e, 0x20, 0x72, 0x75, 0x70, 0x65, 0x65, 0x0 };
+static const sal_Unicode currencyDecimalPlaces0[] = { 2 };
+
+static const sal_Int16 currencyCount = 1;
+
+static const sal_Unicode* currencies[] = {
+ currencyID0,
+ currencySymbol0,
+ bankSymbol0,
+ currencyName0,
+ defaultCurrency0,
+ defaultCurrencyUsedInCompatibleFormatCodes0,
+ currencyDecimalPlaces0,
+ defaultCurrencyLegacyOnly0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getAllCurrencies_en_LK(sal_Int16& count)
+{
+ count = currencyCount;
+ return (sal_Unicode**)currencies;
+}
+extern sal_Unicode** SAL_CALL getTransliterations_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getTransliterations_en_LK(sal_Int16& count)
+{
+ return getTransliterations_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getForbiddenCharacters_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getForbiddenCharacters_en_LK(sal_Int16& count)
+{
+ return getForbiddenCharacters_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getBreakIteratorRules_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getBreakIteratorRules_en_LK(sal_Int16& count)
+{
+ return getBreakIteratorRules_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getReservedWords_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getReservedWords_en_LK(sal_Int16& count)
+{
+ return getReservedWords_en_GB(count);
+}
+// ---> ContinuousNumbering
+extern const sal_Unicode*** SAL_CALL getContinuousNumberingLevels_en_GB(sal_Int16& nStyles,
+ sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode*** SAL_CALL
+getContinuousNumberingLevels_en_LK(sal_Int16& nStyles, sal_Int16& nAttributes)
+{
+ return getContinuousNumberingLevels_en_GB(nStyles, nAttributes);
+}
+// ---> OutlineNumbering
+extern const sal_Unicode**** SAL_CALL getOutlineNumberingLevels_en_GB(sal_Int16& nStyles,
+ sal_Int16& nLevels,
+ sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode**** SAL_CALL
+getOutlineNumberingLevels_en_LK(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)
+{
+ return getOutlineNumberingLevels_en_GB(nStyles, nLevels, nAttributes);
+}
+} // extern "C"
diff --git a/vcl/workben/localestub/localedata_en_MW.cxx b/vcl/workben/localestub/localedata_en_MW.cxx
new file mode 100644
index 000000000..5f21ab3e9
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_MW.cxx
@@ -0,0 +1,140 @@
+#include <sal/types.h>
+
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = {0x65, 0x6e, 0x0};
+static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0};
+static const sal_Unicode countryID[] = {0x4d, 0x57, 0x0};
+static const sal_Unicode countryDefaultName[] = {0x4d, 0x61, 0x6c, 0x61, 0x77, 0x69, 0x0};
+static const sal_Unicode Variant[] = {0x0};
+
+static const sal_Unicode* LCInfoArray[] = {
+ langID,
+ langDefaultName,
+ countryID,
+ countryDefaultName,
+ Variant
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_MW(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCInfoArray;
+}
+extern sal_Unicode ** SAL_CALL getLocaleItem_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_MW(sal_Int16& count)
+{
+ return getLocaleItem_en_GB(count);
+}
+static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x4d, 0x4b, 0x2d, 0x38, 0x38, 0x30, 0x39, 0x5d, 0x0};
+extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_GB(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to);
+SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_MW(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ to = replaceTo0;
+ const sal_Unicode* tmp;
+ return getAllFormats0_en_GB(count, from, tmp);
+}
+extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_MW(sal_Int16& count)
+{
+ return getDateAcceptancePatterns_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_MW(sal_Int16& count)
+{
+ return getCollatorImplementation_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getCollationOptions_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_MW(sal_Int16& count)
+{
+ return getCollationOptions_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getSearchOptions_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_MW(sal_Int16& count)
+{
+ return getSearchOptions_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_MW(sal_Int16& count)
+{
+ return getIndexAlgorithm_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_MW(sal_Int16& count)
+{
+ return getUnicodeScripts_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getFollowPageWords_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_MW(sal_Int16& count)
+{
+ return getFollowPageWords_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getAllCalendars_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_MW(sal_Int16& count)
+{
+ return getAllCalendars_en_GB(count);
+}
+static const sal_Unicode defaultCurrency0[] = {1};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1};
+static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0};
+static const sal_Unicode currencyID0[] = {0x4d, 0x57, 0x4b, 0x0};
+static const sal_Unicode currencySymbol0[] = {0x4d, 0x4b, 0x0};
+static const sal_Unicode bankSymbol0[] = {0x4d, 0x57, 0x4b, 0x0};
+static const sal_Unicode currencyName0[] = {0x4d, 0x61, 0x6c, 0x61, 0x77, 0x69, 0x61, 0x6e, 0x20, 0x6b, 0x77, 0x61, 0x63, 0x68, 0x61, 0x0};
+static const sal_Unicode currencyDecimalPlaces0[] = {2};
+
+static const sal_Int16 currencyCount = 1;
+
+static const sal_Unicode* currencies[] = {
+ currencyID0,
+ currencySymbol0,
+ bankSymbol0,
+ currencyName0,
+ defaultCurrency0,
+ defaultCurrencyUsedInCompatibleFormatCodes0,
+ currencyDecimalPlaces0,
+ defaultCurrencyLegacyOnly0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_MW(sal_Int16& count)
+{
+ count = currencyCount;
+ return (sal_Unicode**)currencies;
+}
+extern sal_Unicode ** SAL_CALL getTransliterations_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_MW(sal_Int16& count)
+{
+ return getTransliterations_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_MW(sal_Int16& count)
+{
+ return getForbiddenCharacters_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_MW(sal_Int16& count)
+{
+ return getBreakIteratorRules_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getReservedWords_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_MW(sal_Int16& count)
+{
+ return getReservedWords_en_GB(count);
+}
+// ---> ContinuousNumbering
+extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_GB(sal_Int16& nStyles, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_MW(sal_Int16& nStyles, sal_Int16& nAttributes)
+{
+ return getContinuousNumberingLevels_en_GB(nStyles, nAttributes);
+}
+// ---> OutlineNumbering
+extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_GB(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_MW(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)
+{
+ return getOutlineNumberingLevels_en_GB(nStyles, nLevels, nAttributes);
+}
+} // extern "C"
+
diff --git a/vcl/workben/localestub/localedata_en_MY.cxx b/vcl/workben/localestub/localedata_en_MY.cxx
new file mode 100644
index 000000000..b24ff2363
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_MY.cxx
@@ -0,0 +1,118 @@
+#include <sal/types.h>
+
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = {0x65, 0x6e, 0x0};
+static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0};
+static const sal_Unicode countryID[] = {0x4d, 0x59, 0x0};
+static const sal_Unicode countryDefaultName[] = {0x4d, 0x61, 0x6c, 0x61, 0x79, 0x73, 0x69, 0x61, 0x0};
+static const sal_Unicode Variant[] = {0x0};
+
+static const sal_Unicode* LCInfoArray[] = {
+ langID,
+ langDefaultName,
+ countryID,
+ countryDefaultName,
+ Variant
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_MY(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCInfoArray;
+}
+extern sal_Unicode ** SAL_CALL getLocaleItem_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_MY(sal_Int16& count)
+{
+ return getLocaleItem_en_GB(count);
+}
+static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x52, 0x4d, 0x2d, 0x34, 0x34, 0x30, 0x39, 0x5d, 0x0};
+extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_GB(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to);
+SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_MY(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ to = replaceTo0;
+ const sal_Unicode* tmp;
+ return getAllFormats0_en_GB(count, from, tmp);
+}
+extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_MY(sal_Int16& count)
+{
+ return getDateAcceptancePatterns_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_MY(sal_Int16& count)
+{
+ return getCollatorImplementation_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getCollationOptions_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_MY(sal_Int16& count)
+{
+ return getCollationOptions_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getSearchOptions_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_MY(sal_Int16& count)
+{
+ return getSearchOptions_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_MY(sal_Int16& count)
+{
+ return getIndexAlgorithm_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_MY(sal_Int16& count)
+{
+ return getUnicodeScripts_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getFollowPageWords_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_MY(sal_Int16& count)
+{
+ return getFollowPageWords_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getAllCalendars_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_MY(sal_Int16& count)
+{
+ return getAllCalendars_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getAllCurrencies_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_MY(sal_Int16& count)
+{
+ return getAllCurrencies_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getTransliterations_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_MY(sal_Int16& count)
+{
+ return getTransliterations_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_MY(sal_Int16& count)
+{
+ return getForbiddenCharacters_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_MY(sal_Int16& count)
+{
+ return getBreakIteratorRules_en_GB(count);
+}
+extern sal_Unicode ** SAL_CALL getReservedWords_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_MY(sal_Int16& count)
+{
+ return getReservedWords_en_GB(count);
+}
+// ---> ContinuousNumbering
+extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_GB(sal_Int16& nStyles, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_MY(sal_Int16& nStyles, sal_Int16& nAttributes)
+{
+ return getContinuousNumberingLevels_en_GB(nStyles, nAttributes);
+}
+// ---> OutlineNumbering
+extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_GB(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_MY(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)
+{
+ return getOutlineNumberingLevels_en_GB(nStyles, nLevels, nAttributes);
+}
+} // extern "C"
+
diff --git a/vcl/workben/localestub/localedata_en_NA.cxx b/vcl/workben/localestub/localedata_en_NA.cxx
new file mode 100644
index 000000000..970c7547a
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_NA.cxx
@@ -0,0 +1,1280 @@
+#include <sal/types.h>
+
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = {0x65, 0x6e, 0x0};
+static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0};
+static const sal_Unicode countryID[] = {0x4e, 0x41, 0x0};
+static const sal_Unicode countryDefaultName[] = {0x4e, 0x61, 0x6d, 0x69, 0x62, 0x69, 0x61, 0x0};
+static const sal_Unicode Variant[] = {0x0};
+
+static const sal_Unicode* LCInfoArray[] = {
+ langID,
+ langDefaultName,
+ countryID,
+ countryDefaultName,
+ Variant
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_NA(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCInfoArray;
+}
+
+
+static const sal_Unicode LC_CTYPE_Unoid[] = {0x0};
+static const sal_Unicode dateSeparator[] = {0x2f, 0x0};
+static const sal_Unicode thousandSeparator[] = {0x2c, 0x0};
+static const sal_Unicode decimalSeparator[] = {0x2e, 0x0};
+static const sal_Unicode timeSeparator[] = {0x3a, 0x0};
+static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0};
+static const sal_Unicode listSeparator[] = {0x3b, 0x0};
+static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateDaySeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0};
+static const sal_Unicode quotationStart[] = {0x2018, 0x0};
+static const sal_Unicode quotationEnd[] = {0x2019, 0x0};
+static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0};
+static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0};
+static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0};
+static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0};
+static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0};
+
+static const sal_Unicode* LCType[] = {
+ LC_CTYPE_Unoid,
+ dateSeparator,
+ thousandSeparator,
+ decimalSeparator,
+ timeSeparator,
+ time100SecSeparator,
+ listSeparator,
+ quotationStart,
+ quotationEnd,
+ doubleQuotationStart,
+ doubleQuotationEnd,
+ timeAM,
+ timePM,
+ measurementSystem,
+ LongDateDayOfWeekSeparator,
+ LongDateDaySeparator,
+ LongDateMonthSeparator,
+ LongDateYearSeparator
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_NA(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCType;
+}
+static const sal_Unicode replaceFrom0[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x0};
+static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x24, 0x2d, 0x38, 0x30, 0x30, 0x39, 0x5d, 0x0};
+static const sal_Unicode FormatKey0[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement0[] = {1};
+static const sal_Unicode FormatType0[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage0[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex0[] = {0};
+static const sal_Unicode FormatCode0[] = {0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0};
+static const sal_Unicode FormatDefaultName0[] = {0x0};
+static const sal_Unicode FormatKey1[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement1[] = {1};
+static const sal_Unicode FormatType1[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage1[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex1[] = {1};
+static const sal_Unicode FormatCode1[] = {0x30, 0x0};
+static const sal_Unicode FormatDefaultName1[] = {0x0};
+static const sal_Unicode FormatKey2[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement2[] = {0};
+static const sal_Unicode FormatType2[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage2[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex2[] = {2};
+static const sal_Unicode FormatCode2[] = {0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName2[] = {0x0};
+static const sal_Unicode FormatKey3[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement3[] = {0};
+static const sal_Unicode FormatType3[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage3[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex3[] = {3};
+static const sal_Unicode FormatCode3[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName3[] = {0x0};
+static const sal_Unicode FormatKey4[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement4[] = {0};
+static const sal_Unicode FormatType4[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage4[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex4[] = {4};
+static const sal_Unicode FormatCode4[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName4[] = {0x0};
+static const sal_Unicode FormatKey5[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement5[] = {0};
+static const sal_Unicode FormatType5[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage5[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex5[] = {5};
+static const sal_Unicode FormatCode5[] = {0x23, 0x2c, 0x23, 0x23, 0x23, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName5[] = {0x0};
+static const sal_Unicode FormatKey6[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement6[] = {0};
+static const sal_Unicode FormatType6[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage6[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex6[] = {70};
+static const sal_Unicode FormatCode6[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x29, 0x0};
+static const sal_Unicode FormatDefaultName6[] = {0x0};
+static const sal_Unicode FormatKey7[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement7[] = {0};
+static const sal_Unicode FormatType7[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage7[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex7[] = {71};
+static const sal_Unicode FormatCode7[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x29, 0x0};
+static const sal_Unicode FormatDefaultName7[] = {0x0};
+static const sal_Unicode FormatKey8[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement8[] = {0};
+static const sal_Unicode FormatType8[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage8[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex8[] = {6};
+static const sal_Unicode FormatCode8[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName8[] = {0x0};
+static const sal_Unicode FormatKey9[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement9[] = {1};
+static const sal_Unicode FormatType9[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage9[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex9[] = {7};
+static const sal_Unicode FormatCode9[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName9[] = {0x0};
+static const sal_Unicode FormatKey10[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement10[] = {0};
+static const sal_Unicode FormatType10[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage10[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex10[] = {78};
+static const sal_Unicode FormatCode10[] = {0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName10[] = {0x0};
+static const sal_Unicode FormatKey11[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement11[] = {1};
+static const sal_Unicode FormatType11[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage11[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex11[] = {8};
+static const sal_Unicode FormatCode11[] = {0x30, 0x25, 0x0};
+static const sal_Unicode FormatDefaultName11[] = {0x0};
+static const sal_Unicode FormatKey12[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement12[] = {1};
+static const sal_Unicode FormatType12[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage12[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex12[] = {9};
+static const sal_Unicode FormatCode12[] = {0x30, 0x2e, 0x30, 0x30, 0x25, 0x0};
+static const sal_Unicode FormatDefaultName12[] = {0x0};
+static const sal_Unicode FormatKey13[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement13[] = {1};
+static const sal_Unicode FormatType13[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage13[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex13[] = {12};
+static const sal_Unicode FormatCode13[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName13[] = {0x0};
+static const sal_Unicode FormatKey14[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement14[] = {0};
+static const sal_Unicode FormatType14[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage14[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex14[] = {13};
+static const sal_Unicode FormatCode14[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName14[] = {0x0};
+static const sal_Unicode FormatKey15[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement15[] = {0};
+static const sal_Unicode FormatType15[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage15[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex15[] = {14};
+static const sal_Unicode FormatCode15[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName15[] = {0x0};
+static const sal_Unicode FormatKey16[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement16[] = {1};
+static const sal_Unicode FormatType16[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage16[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex16[] = {15};
+static const sal_Unicode FormatCode16[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName16[] = {0x0};
+static const sal_Unicode FormatKey17[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement17[] = {0};
+static const sal_Unicode FormatType17[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage17[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex17[] = {16};
+static const sal_Unicode FormatCode17[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x20, 0x43, 0x43, 0x43, 0x0};
+static const sal_Unicode FormatDefaultName17[] = {0x0};
+static const sal_Unicode FormatKey18[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement18[] = {0};
+static const sal_Unicode FormatType18[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage18[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex18[] = {17};
+static const sal_Unicode FormatCode18[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x0};
+static const sal_Unicode FormatDefaultName18[] = {0x0};
+static const sal_Unicode FormatKey19[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement19[] = {1};
+static const sal_Unicode FormatType19[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage19[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex19[] = {18};
+static const sal_Unicode FormatCode19[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName19[] = {0x0};
+static const sal_Unicode FormatKey20[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x39, 0x0};
+static const sal_Unicode defaultFormatElement20[] = {1};
+static const sal_Unicode FormatType20[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage20[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex20[] = {19};
+static const sal_Unicode FormatCode20[] = {0x44, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName20[] = {0x0};
+static const sal_Unicode FormatKey21[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement21[] = {1};
+static const sal_Unicode FormatType21[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage21[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex21[] = {20};
+static const sal_Unicode FormatCode21[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName21[] = {0x0};
+static const sal_Unicode FormatKey22[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement22[] = {0};
+static const sal_Unicode FormatType22[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage22[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex22[] = {21};
+static const sal_Unicode FormatCode22[] = {0x59, 0x59, 0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName22[] = {0x0};
+static const sal_Unicode FormatKey23[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x30, 0x0};
+static const sal_Unicode defaultFormatElement23[] = {0};
+static const sal_Unicode FormatType23[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage23[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex23[] = {22};
+static const sal_Unicode FormatCode23[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName23[] = {0x0};
+static const sal_Unicode FormatKey24[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement24[] = {0};
+static const sal_Unicode FormatType24[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage24[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex24[] = {23};
+static const sal_Unicode FormatCode24[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName24[] = {0x0};
+static const sal_Unicode FormatKey25[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement25[] = {0};
+static const sal_Unicode FormatType25[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage25[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex25[] = {24};
+static const sal_Unicode FormatCode25[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x2e, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName25[] = {0x0};
+static const sal_Unicode FormatKey26[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement26[] = {0};
+static const sal_Unicode FormatType26[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage26[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex26[] = {25};
+static const sal_Unicode FormatCode26[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName26[] = {0x0};
+static const sal_Unicode FormatKey27[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement27[] = {0};
+static const sal_Unicode FormatType27[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage27[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex27[] = {26};
+static const sal_Unicode FormatCode27[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName27[] = {0x0};
+static const sal_Unicode FormatKey28[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement28[] = {0};
+static const sal_Unicode FormatType28[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage28[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex28[] = {27};
+static const sal_Unicode FormatCode28[] = {0x4e, 0x4e, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName28[] = {0x0};
+static const sal_Unicode FormatKey29[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement29[] = {0};
+static const sal_Unicode FormatType29[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage29[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex29[] = {28};
+static const sal_Unicode FormatCode29[] = {0x4e, 0x4e, 0x20, 0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName29[] = {0x0};
+static const sal_Unicode FormatKey30[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement30[] = {0};
+static const sal_Unicode FormatType30[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage30[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex30[] = {29};
+static const sal_Unicode FormatCode30[] = {0x4e, 0x4e, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName30[] = {0x0};
+static const sal_Unicode FormatKey31[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement31[] = {0};
+static const sal_Unicode FormatType31[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage31[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex31[] = {30};
+static const sal_Unicode FormatCode31[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName31[] = {0x0};
+static const sal_Unicode FormatKey32[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement32[] = {0};
+static const sal_Unicode FormatType32[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage32[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex32[] = {31};
+static const sal_Unicode FormatCode32[] = {0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName32[] = {0x0};
+static const sal_Unicode FormatKey33[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x39, 0x0};
+static const sal_Unicode defaultFormatElement33[] = {0};
+static const sal_Unicode FormatType33[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage33[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex33[] = {32};
+static const sal_Unicode FormatCode33[] = {0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName33[] = {0x0};
+static const sal_Unicode FormatKey34[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x30, 0x0};
+static const sal_Unicode defaultFormatElement34[] = {0};
+static const sal_Unicode FormatType34[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage34[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex34[] = {33};
+static const sal_Unicode FormatCode34[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName34[] = {0x49, 0x53, 0x4f, 0x20, 0x38, 0x36, 0x30, 0x31, 0x0};
+static const sal_Unicode FormatKey35[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement35[] = {0};
+static const sal_Unicode FormatType35[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage35[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex35[] = {34};
+static const sal_Unicode FormatCode35[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName35[] = {0x0};
+static const sal_Unicode FormatKey36[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement36[] = {0};
+static const sal_Unicode FormatType36[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage36[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex36[] = {35};
+static const sal_Unicode FormatCode36[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName36[] = {0x0};
+static const sal_Unicode FormatKey37[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement37[] = {0};
+static const sal_Unicode FormatType37[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage37[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex37[] = {36};
+static const sal_Unicode FormatCode37[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName37[] = {0x0};
+static const sal_Unicode FormatKey38[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement38[] = {0};
+static const sal_Unicode FormatType38[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage38[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex38[] = {37};
+static const sal_Unicode FormatCode38[] = {0x51, 0x51, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName38[] = {0x0};
+static const sal_Unicode FormatKey39[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement39[] = {0};
+static const sal_Unicode FormatType39[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage39[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex39[] = {38};
+static const sal_Unicode FormatCode39[] = {0x57, 0x57, 0x0};
+static const sal_Unicode FormatDefaultName39[] = {0x0};
+static const sal_Unicode FormatKey40[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement40[] = {1};
+static const sal_Unicode FormatType40[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage40[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex40[] = {39};
+static const sal_Unicode FormatCode40[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName40[] = {0x0};
+static const sal_Unicode FormatKey41[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement41[] = {1};
+static const sal_Unicode FormatType41[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage41[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex41[] = {40};
+static const sal_Unicode FormatCode41[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName41[] = {0x0};
+static const sal_Unicode FormatKey42[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement42[] = {0};
+static const sal_Unicode FormatType42[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage42[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex42[] = {41};
+static const sal_Unicode FormatCode42[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName42[] = {0x0};
+static const sal_Unicode FormatKey43[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement43[] = {0};
+static const sal_Unicode FormatType43[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage43[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex43[] = {42};
+static const sal_Unicode FormatCode43[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName43[] = {0x0};
+static const sal_Unicode FormatKey44[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement44[] = {0};
+static const sal_Unicode FormatType44[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage44[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex44[] = {43};
+static const sal_Unicode FormatCode44[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName44[] = {0x0};
+static const sal_Unicode FormatKey45[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement45[] = {0};
+static const sal_Unicode FormatType45[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage45[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex45[] = {44};
+static const sal_Unicode FormatCode45[] = {0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName45[] = {0x0};
+static const sal_Unicode FormatKey46[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement46[] = {0};
+static const sal_Unicode FormatType46[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage46[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex46[] = {45};
+static const sal_Unicode FormatCode46[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName46[] = {0x0};
+static const sal_Unicode FormatKey47[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement47[] = {1};
+static const sal_Unicode FormatType47[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage47[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex47[] = {46};
+static const sal_Unicode FormatCode47[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName47[] = {0x0};
+static const sal_Unicode FormatKey48[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement48[] = {0};
+static const sal_Unicode FormatType48[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage48[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex48[] = {47};
+static const sal_Unicode FormatCode48[] = {0x59, 0x59, 0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName48[] = {0x0};
+
+static const sal_Int16 FormatElementsCount0 = 49;
+static const sal_Unicode* FormatElementsArray0[] = {
+ FormatCode0,
+ FormatDefaultName0,
+ FormatKey0,
+ FormatType0,
+ FormatUsage0,
+ Formatindex0,
+ defaultFormatElement0,
+ FormatCode1,
+ FormatDefaultName1,
+ FormatKey1,
+ FormatType1,
+ FormatUsage1,
+ Formatindex1,
+ defaultFormatElement1,
+ FormatCode2,
+ FormatDefaultName2,
+ FormatKey2,
+ FormatType2,
+ FormatUsage2,
+ Formatindex2,
+ defaultFormatElement2,
+ FormatCode3,
+ FormatDefaultName3,
+ FormatKey3,
+ FormatType3,
+ FormatUsage3,
+ Formatindex3,
+ defaultFormatElement3,
+ FormatCode4,
+ FormatDefaultName4,
+ FormatKey4,
+ FormatType4,
+ FormatUsage4,
+ Formatindex4,
+ defaultFormatElement4,
+ FormatCode5,
+ FormatDefaultName5,
+ FormatKey5,
+ FormatType5,
+ FormatUsage5,
+ Formatindex5,
+ defaultFormatElement5,
+ FormatCode6,
+ FormatDefaultName6,
+ FormatKey6,
+ FormatType6,
+ FormatUsage6,
+ Formatindex6,
+ defaultFormatElement6,
+ FormatCode7,
+ FormatDefaultName7,
+ FormatKey7,
+ FormatType7,
+ FormatUsage7,
+ Formatindex7,
+ defaultFormatElement7,
+ FormatCode8,
+ FormatDefaultName8,
+ FormatKey8,
+ FormatType8,
+ FormatUsage8,
+ Formatindex8,
+ defaultFormatElement8,
+ FormatCode9,
+ FormatDefaultName9,
+ FormatKey9,
+ FormatType9,
+ FormatUsage9,
+ Formatindex9,
+ defaultFormatElement9,
+ FormatCode10,
+ FormatDefaultName10,
+ FormatKey10,
+ FormatType10,
+ FormatUsage10,
+ Formatindex10,
+ defaultFormatElement10,
+ FormatCode11,
+ FormatDefaultName11,
+ FormatKey11,
+ FormatType11,
+ FormatUsage11,
+ Formatindex11,
+ defaultFormatElement11,
+ FormatCode12,
+ FormatDefaultName12,
+ FormatKey12,
+ FormatType12,
+ FormatUsage12,
+ Formatindex12,
+ defaultFormatElement12,
+ FormatCode13,
+ FormatDefaultName13,
+ FormatKey13,
+ FormatType13,
+ FormatUsage13,
+ Formatindex13,
+ defaultFormatElement13,
+ FormatCode14,
+ FormatDefaultName14,
+ FormatKey14,
+ FormatType14,
+ FormatUsage14,
+ Formatindex14,
+ defaultFormatElement14,
+ FormatCode15,
+ FormatDefaultName15,
+ FormatKey15,
+ FormatType15,
+ FormatUsage15,
+ Formatindex15,
+ defaultFormatElement15,
+ FormatCode16,
+ FormatDefaultName16,
+ FormatKey16,
+ FormatType16,
+ FormatUsage16,
+ Formatindex16,
+ defaultFormatElement16,
+ FormatCode17,
+ FormatDefaultName17,
+ FormatKey17,
+ FormatType17,
+ FormatUsage17,
+ Formatindex17,
+ defaultFormatElement17,
+ FormatCode18,
+ FormatDefaultName18,
+ FormatKey18,
+ FormatType18,
+ FormatUsage18,
+ Formatindex18,
+ defaultFormatElement18,
+ FormatCode19,
+ FormatDefaultName19,
+ FormatKey19,
+ FormatType19,
+ FormatUsage19,
+ Formatindex19,
+ defaultFormatElement19,
+ FormatCode20,
+ FormatDefaultName20,
+ FormatKey20,
+ FormatType20,
+ FormatUsage20,
+ Formatindex20,
+ defaultFormatElement20,
+ FormatCode21,
+ FormatDefaultName21,
+ FormatKey21,
+ FormatType21,
+ FormatUsage21,
+ Formatindex21,
+ defaultFormatElement21,
+ FormatCode22,
+ FormatDefaultName22,
+ FormatKey22,
+ FormatType22,
+ FormatUsage22,
+ Formatindex22,
+ defaultFormatElement22,
+ FormatCode23,
+ FormatDefaultName23,
+ FormatKey23,
+ FormatType23,
+ FormatUsage23,
+ Formatindex23,
+ defaultFormatElement23,
+ FormatCode24,
+ FormatDefaultName24,
+ FormatKey24,
+ FormatType24,
+ FormatUsage24,
+ Formatindex24,
+ defaultFormatElement24,
+ FormatCode25,
+ FormatDefaultName25,
+ FormatKey25,
+ FormatType25,
+ FormatUsage25,
+ Formatindex25,
+ defaultFormatElement25,
+ FormatCode26,
+ FormatDefaultName26,
+ FormatKey26,
+ FormatType26,
+ FormatUsage26,
+ Formatindex26,
+ defaultFormatElement26,
+ FormatCode27,
+ FormatDefaultName27,
+ FormatKey27,
+ FormatType27,
+ FormatUsage27,
+ Formatindex27,
+ defaultFormatElement27,
+ FormatCode28,
+ FormatDefaultName28,
+ FormatKey28,
+ FormatType28,
+ FormatUsage28,
+ Formatindex28,
+ defaultFormatElement28,
+ FormatCode29,
+ FormatDefaultName29,
+ FormatKey29,
+ FormatType29,
+ FormatUsage29,
+ Formatindex29,
+ defaultFormatElement29,
+ FormatCode30,
+ FormatDefaultName30,
+ FormatKey30,
+ FormatType30,
+ FormatUsage30,
+ Formatindex30,
+ defaultFormatElement30,
+ FormatCode31,
+ FormatDefaultName31,
+ FormatKey31,
+ FormatType31,
+ FormatUsage31,
+ Formatindex31,
+ defaultFormatElement31,
+ FormatCode32,
+ FormatDefaultName32,
+ FormatKey32,
+ FormatType32,
+ FormatUsage32,
+ Formatindex32,
+ defaultFormatElement32,
+ FormatCode33,
+ FormatDefaultName33,
+ FormatKey33,
+ FormatType33,
+ FormatUsage33,
+ Formatindex33,
+ defaultFormatElement33,
+ FormatCode34,
+ FormatDefaultName34,
+ FormatKey34,
+ FormatType34,
+ FormatUsage34,
+ Formatindex34,
+ defaultFormatElement34,
+ FormatCode35,
+ FormatDefaultName35,
+ FormatKey35,
+ FormatType35,
+ FormatUsage35,
+ Formatindex35,
+ defaultFormatElement35,
+ FormatCode36,
+ FormatDefaultName36,
+ FormatKey36,
+ FormatType36,
+ FormatUsage36,
+ Formatindex36,
+ defaultFormatElement36,
+ FormatCode37,
+ FormatDefaultName37,
+ FormatKey37,
+ FormatType37,
+ FormatUsage37,
+ Formatindex37,
+ defaultFormatElement37,
+ FormatCode38,
+ FormatDefaultName38,
+ FormatKey38,
+ FormatType38,
+ FormatUsage38,
+ Formatindex38,
+ defaultFormatElement38,
+ FormatCode39,
+ FormatDefaultName39,
+ FormatKey39,
+ FormatType39,
+ FormatUsage39,
+ Formatindex39,
+ defaultFormatElement39,
+ FormatCode40,
+ FormatDefaultName40,
+ FormatKey40,
+ FormatType40,
+ FormatUsage40,
+ Formatindex40,
+ defaultFormatElement40,
+ FormatCode41,
+ FormatDefaultName41,
+ FormatKey41,
+ FormatType41,
+ FormatUsage41,
+ Formatindex41,
+ defaultFormatElement41,
+ FormatCode42,
+ FormatDefaultName42,
+ FormatKey42,
+ FormatType42,
+ FormatUsage42,
+ Formatindex42,
+ defaultFormatElement42,
+ FormatCode43,
+ FormatDefaultName43,
+ FormatKey43,
+ FormatType43,
+ FormatUsage43,
+ Formatindex43,
+ defaultFormatElement43,
+ FormatCode44,
+ FormatDefaultName44,
+ FormatKey44,
+ FormatType44,
+ FormatUsage44,
+ Formatindex44,
+ defaultFormatElement44,
+ FormatCode45,
+ FormatDefaultName45,
+ FormatKey45,
+ FormatType45,
+ FormatUsage45,
+ Formatindex45,
+ defaultFormatElement45,
+ FormatCode46,
+ FormatDefaultName46,
+ FormatKey46,
+ FormatType46,
+ FormatUsage46,
+ Formatindex46,
+ defaultFormatElement46,
+ FormatCode47,
+ FormatDefaultName47,
+ FormatKey47,
+ FormatType47,
+ FormatUsage47,
+ Formatindex47,
+ defaultFormatElement47,
+ FormatCode48,
+ FormatDefaultName48,
+ FormatKey48,
+ FormatType48,
+ FormatUsage48,
+ Formatindex48,
+ defaultFormatElement48,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_NA(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ count = FormatElementsCount0;
+ from = replaceFrom0;
+ to = replaceTo0;
+ return (sal_Unicode**)FormatElementsArray0;
+}
+static const sal_Unicode DateAcceptancePattern0[] = {0x59, 0x2f, 0x4d, 0x2f, 0x44, 0x0};
+static const sal_Unicode DateAcceptancePattern1[] = {0x4d, 0x2f, 0x44, 0x0};
+static const sal_Int16 DateAcceptancePatternsCount = 2;
+static const sal_Unicode* DateAcceptancePatternsArray[] = {
+ DateAcceptancePattern0,
+ DateAcceptancePattern1,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_NA(sal_Int16& count)
+{
+ count = DateAcceptancePatternsCount;
+ return (sal_Unicode**)DateAcceptancePatternsArray;
+}
+extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_NA(sal_Int16& count)
+{
+ return getCollatorImplementation_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_NA(sal_Int16& count)
+{
+ return getCollationOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_NA(sal_Int16& count)
+{
+ return getSearchOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_NA(sal_Int16& count)
+{
+ return getIndexAlgorithm_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_NA(sal_Int16& count)
+{
+ return getUnicodeScripts_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_NA(sal_Int16& count)
+{
+ return getFollowPageWords_en_US(count);
+}
+static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode defaultCalendar0[] = {1};
+static const sal_Unicode dayID00[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode dayDefaultAbbrvName00[] = {0x53, 0x75, 0x6e, 0x0};
+static const sal_Unicode dayDefaultFullName00[] = {0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName00[] = {0x53, 0x0};
+static const sal_Unicode dayID01[] = {0x6d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode dayDefaultAbbrvName01[] = {0x4d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode dayDefaultFullName01[] = {0x4d, 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName01[] = {0x4d, 0x0};
+static const sal_Unicode dayID02[] = {0x74, 0x75, 0x65, 0x0};
+static const sal_Unicode dayDefaultAbbrvName02[] = {0x54, 0x75, 0x65, 0x0};
+static const sal_Unicode dayDefaultFullName02[] = {0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName02[] = {0x54, 0x0};
+static const sal_Unicode dayID03[] = {0x77, 0x65, 0x64, 0x0};
+static const sal_Unicode dayDefaultAbbrvName03[] = {0x57, 0x65, 0x64, 0x0};
+static const sal_Unicode dayDefaultFullName03[] = {0x57, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName03[] = {0x57, 0x0};
+static const sal_Unicode dayID04[] = {0x74, 0x68, 0x75, 0x0};
+static const sal_Unicode dayDefaultAbbrvName04[] = {0x54, 0x68, 0x75, 0x0};
+static const sal_Unicode dayDefaultFullName04[] = {0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName04[] = {0x54, 0x0};
+static const sal_Unicode dayID05[] = {0x66, 0x72, 0x69, 0x0};
+static const sal_Unicode dayDefaultAbbrvName05[] = {0x46, 0x72, 0x69, 0x0};
+static const sal_Unicode dayDefaultFullName05[] = {0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName05[] = {0x46, 0x0};
+static const sal_Unicode dayID06[] = {0x73, 0x61, 0x74, 0x0};
+static const sal_Unicode dayDefaultAbbrvName06[] = {0x53, 0x61, 0x74, 0x0};
+static const sal_Unicode dayDefaultFullName06[] = {0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName06[] = {0x53, 0x0};
+static const sal_Unicode monthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode monthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode monthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode monthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode monthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode monthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode monthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode monthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode monthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode monthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode monthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode monthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode monthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode monthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode monthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode monthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode monthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode monthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode monthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode monthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode monthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode monthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode monthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode monthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode monthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode monthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode monthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode monthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode monthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode monthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode monthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode monthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode monthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode monthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode genitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode genitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode genitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode genitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode genitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode genitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode genitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode genitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode genitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode partitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode partitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode partitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode partitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode partitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode partitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode partitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode partitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode partitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode eraID00[] = {0x62, 0x63, 0x0};
+
+static const sal_Unicode eraDefaultAbbrvName00[] = {0x42, 0x43, 0x0};
+static const sal_Unicode eraDefaultFullName00[] = {0x42, 0x43, 0x0};
+static const sal_Unicode eraID01[] = {0x61, 0x64, 0x0};
+
+static const sal_Unicode eraDefaultAbbrvName01[] = {0x41, 0x44, 0x0};
+static const sal_Unicode eraDefaultFullName01[] = {0x41, 0x44, 0x0};
+static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode minimalDaysInFirstWeek0[] = {1};
+static const sal_Int16 calendarsCount = 1;
+
+static const sal_Unicode nbOfDays[] = {7};
+static const sal_Unicode nbOfMonths[] = {12};
+static const sal_Unicode nbOfGenitiveMonths[] = {12};
+static const sal_Unicode nbOfPartitiveMonths[] = {12};
+static const sal_Unicode nbOfEras[] = {2};
+static const sal_Unicode* calendars[] = {
+ nbOfDays,
+ nbOfMonths,
+ nbOfGenitiveMonths,
+ nbOfPartitiveMonths,
+ nbOfEras,
+ calendarID0,
+ defaultCalendar0,
+ dayID00,
+ dayDefaultAbbrvName00,
+ dayDefaultFullName00,
+ dayDefaultNarrowName00,
+ dayID01,
+ dayDefaultAbbrvName01,
+ dayDefaultFullName01,
+ dayDefaultNarrowName01,
+ dayID02,
+ dayDefaultAbbrvName02,
+ dayDefaultFullName02,
+ dayDefaultNarrowName02,
+ dayID03,
+ dayDefaultAbbrvName03,
+ dayDefaultFullName03,
+ dayDefaultNarrowName03,
+ dayID04,
+ dayDefaultAbbrvName04,
+ dayDefaultFullName04,
+ dayDefaultNarrowName04,
+ dayID05,
+ dayDefaultAbbrvName05,
+ dayDefaultFullName05,
+ dayDefaultNarrowName05,
+ dayID06,
+ dayDefaultAbbrvName06,
+ dayDefaultFullName06,
+ dayDefaultNarrowName06,
+ monthID00,
+ monthDefaultAbbrvName00,
+ monthDefaultFullName00,
+ monthDefaultNarrowName00,
+ monthID01,
+ monthDefaultAbbrvName01,
+ monthDefaultFullName01,
+ monthDefaultNarrowName01,
+ monthID02,
+ monthDefaultAbbrvName02,
+ monthDefaultFullName02,
+ monthDefaultNarrowName02,
+ monthID03,
+ monthDefaultAbbrvName03,
+ monthDefaultFullName03,
+ monthDefaultNarrowName03,
+ monthID04,
+ monthDefaultAbbrvName04,
+ monthDefaultFullName04,
+ monthDefaultNarrowName04,
+ monthID05,
+ monthDefaultAbbrvName05,
+ monthDefaultFullName05,
+ monthDefaultNarrowName05,
+ monthID06,
+ monthDefaultAbbrvName06,
+ monthDefaultFullName06,
+ monthDefaultNarrowName06,
+ monthID07,
+ monthDefaultAbbrvName07,
+ monthDefaultFullName07,
+ monthDefaultNarrowName07,
+ monthID08,
+ monthDefaultAbbrvName08,
+ monthDefaultFullName08,
+ monthDefaultNarrowName08,
+ monthID09,
+ monthDefaultAbbrvName09,
+ monthDefaultFullName09,
+ monthDefaultNarrowName09,
+ monthID010,
+ monthDefaultAbbrvName010,
+ monthDefaultFullName010,
+ monthDefaultNarrowName010,
+ monthID011,
+ monthDefaultAbbrvName011,
+ monthDefaultFullName011,
+ monthDefaultNarrowName011,
+ genitiveMonthID00,
+ genitiveMonthDefaultAbbrvName00,
+ genitiveMonthDefaultFullName00,
+ genitiveMonthDefaultNarrowName00,
+ genitiveMonthID01,
+ genitiveMonthDefaultAbbrvName01,
+ genitiveMonthDefaultFullName01,
+ genitiveMonthDefaultNarrowName01,
+ genitiveMonthID02,
+ genitiveMonthDefaultAbbrvName02,
+ genitiveMonthDefaultFullName02,
+ genitiveMonthDefaultNarrowName02,
+ genitiveMonthID03,
+ genitiveMonthDefaultAbbrvName03,
+ genitiveMonthDefaultFullName03,
+ genitiveMonthDefaultNarrowName03,
+ genitiveMonthID04,
+ genitiveMonthDefaultAbbrvName04,
+ genitiveMonthDefaultFullName04,
+ genitiveMonthDefaultNarrowName04,
+ genitiveMonthID05,
+ genitiveMonthDefaultAbbrvName05,
+ genitiveMonthDefaultFullName05,
+ genitiveMonthDefaultNarrowName05,
+ genitiveMonthID06,
+ genitiveMonthDefaultAbbrvName06,
+ genitiveMonthDefaultFullName06,
+ genitiveMonthDefaultNarrowName06,
+ genitiveMonthID07,
+ genitiveMonthDefaultAbbrvName07,
+ genitiveMonthDefaultFullName07,
+ genitiveMonthDefaultNarrowName07,
+ genitiveMonthID08,
+ genitiveMonthDefaultAbbrvName08,
+ genitiveMonthDefaultFullName08,
+ genitiveMonthDefaultNarrowName08,
+ genitiveMonthID09,
+ genitiveMonthDefaultAbbrvName09,
+ genitiveMonthDefaultFullName09,
+ genitiveMonthDefaultNarrowName09,
+ genitiveMonthID010,
+ genitiveMonthDefaultAbbrvName010,
+ genitiveMonthDefaultFullName010,
+ genitiveMonthDefaultNarrowName010,
+ genitiveMonthID011,
+ genitiveMonthDefaultAbbrvName011,
+ genitiveMonthDefaultFullName011,
+ genitiveMonthDefaultNarrowName011,
+ partitiveMonthID00,
+ partitiveMonthDefaultAbbrvName00,
+ partitiveMonthDefaultFullName00,
+ partitiveMonthDefaultNarrowName00,
+ partitiveMonthID01,
+ partitiveMonthDefaultAbbrvName01,
+ partitiveMonthDefaultFullName01,
+ partitiveMonthDefaultNarrowName01,
+ partitiveMonthID02,
+ partitiveMonthDefaultAbbrvName02,
+ partitiveMonthDefaultFullName02,
+ partitiveMonthDefaultNarrowName02,
+ partitiveMonthID03,
+ partitiveMonthDefaultAbbrvName03,
+ partitiveMonthDefaultFullName03,
+ partitiveMonthDefaultNarrowName03,
+ partitiveMonthID04,
+ partitiveMonthDefaultAbbrvName04,
+ partitiveMonthDefaultFullName04,
+ partitiveMonthDefaultNarrowName04,
+ partitiveMonthID05,
+ partitiveMonthDefaultAbbrvName05,
+ partitiveMonthDefaultFullName05,
+ partitiveMonthDefaultNarrowName05,
+ partitiveMonthID06,
+ partitiveMonthDefaultAbbrvName06,
+ partitiveMonthDefaultFullName06,
+ partitiveMonthDefaultNarrowName06,
+ partitiveMonthID07,
+ partitiveMonthDefaultAbbrvName07,
+ partitiveMonthDefaultFullName07,
+ partitiveMonthDefaultNarrowName07,
+ partitiveMonthID08,
+ partitiveMonthDefaultAbbrvName08,
+ partitiveMonthDefaultFullName08,
+ partitiveMonthDefaultNarrowName08,
+ partitiveMonthID09,
+ partitiveMonthDefaultAbbrvName09,
+ partitiveMonthDefaultFullName09,
+ partitiveMonthDefaultNarrowName09,
+ partitiveMonthID010,
+ partitiveMonthDefaultAbbrvName010,
+ partitiveMonthDefaultFullName010,
+ partitiveMonthDefaultNarrowName010,
+ partitiveMonthID011,
+ partitiveMonthDefaultAbbrvName011,
+ partitiveMonthDefaultFullName011,
+ partitiveMonthDefaultNarrowName011,
+ eraID00,
+ eraDefaultAbbrvName00,
+ eraDefaultFullName00,
+ eraID01,
+ eraDefaultAbbrvName01,
+ eraDefaultFullName01,
+ startDayOfWeek0,
+ minimalDaysInFirstWeek0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_NA(sal_Int16& count)
+{
+ count = calendarsCount;
+ return (sal_Unicode**)calendars;
+}
+static const sal_Unicode defaultCurrency0[] = {1};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1};
+static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0};
+static const sal_Unicode currencyID0[] = {0x4e, 0x41, 0x44, 0x0};
+static const sal_Unicode currencySymbol0[] = {0x24, 0x0};
+static const sal_Unicode bankSymbol0[] = {0x4e, 0x41, 0x44, 0x0};
+static const sal_Unicode currencyName0[] = {0x4e, 0x61, 0x6d, 0x69, 0x62, 0x69, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x0};
+static const sal_Unicode currencyDecimalPlaces0[] = {2};
+
+static const sal_Unicode defaultCurrency1[] = {0};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes1[] = {0};
+static const sal_Unicode defaultCurrencyLegacyOnly1[] = {0};
+static const sal_Unicode currencyID1[] = {0x5a, 0x41, 0x52, 0x0};
+static const sal_Unicode currencySymbol1[] = {0x52, 0x0};
+static const sal_Unicode bankSymbol1[] = {0x5a, 0x41, 0x52, 0x0};
+static const sal_Unicode currencyName1[] = {0x53, 0x6f, 0x75, 0x74, 0x68, 0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x0};
+static const sal_Unicode currencyDecimalPlaces1[] = {2};
+
+static const sal_Int16 currencyCount = 2;
+
+static const sal_Unicode* currencies[] = {
+ currencyID0,
+ currencySymbol0,
+ bankSymbol0,
+ currencyName0,
+ defaultCurrency0,
+ defaultCurrencyUsedInCompatibleFormatCodes0,
+ currencyDecimalPlaces0,
+ defaultCurrencyLegacyOnly0,
+ currencyID1,
+ currencySymbol1,
+ bankSymbol1,
+ currencyName1,
+ defaultCurrency1,
+ defaultCurrencyUsedInCompatibleFormatCodes1,
+ currencyDecimalPlaces1,
+ defaultCurrencyLegacyOnly1,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_NA(sal_Int16& count)
+{
+ count = currencyCount;
+ return (sal_Unicode**)currencies;
+}
+extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_NA(sal_Int16& count)
+{
+ return getTransliterations_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_NA(sal_Int16& count)
+{
+ return getForbiddenCharacters_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_NA(sal_Int16& count)
+{
+ return getBreakIteratorRules_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_NA(sal_Int16& count)
+{
+ return getReservedWords_en_US(count);
+}
+// ---> ContinuousNumbering
+extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_NA(sal_Int16& nStyles, sal_Int16& nAttributes)
+{
+ return getContinuousNumberingLevels_en_US(nStyles, nAttributes);
+}
+// ---> OutlineNumbering
+extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_NA(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)
+{
+ return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes);
+}
+} // extern "C"
+
diff --git a/vcl/workben/localestub/localedata_en_NG.cxx b/vcl/workben/localestub/localedata_en_NG.cxx
new file mode 100644
index 000000000..5d3514516
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_NG.cxx
@@ -0,0 +1,142 @@
+#include <sal/types.h>
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = { 0x65, 0x6e, 0x0 };
+static const sal_Unicode langDefaultName[] = { 0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0 };
+static const sal_Unicode countryID[] = { 0x4e, 0x47, 0x0 };
+static const sal_Unicode countryDefaultName[] = { 0x4e, 0x69, 0x67, 0x65, 0x72, 0x69, 0x61, 0x0 };
+static const sal_Unicode Variant[] = { 0x0 };
+
+static const sal_Unicode* LCInfoArray[]
+ = { langID, langDefaultName, countryID, countryDefaultName, Variant };
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getLCInfo_en_NG(sal_Int16& count)
+{
+ count = SAL_N_ELEMENTS(LCInfoArray);
+ return (sal_Unicode**)LCInfoArray;
+}
+extern sal_Unicode** SAL_CALL getLocaleItem_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getLocaleItem_en_NG(sal_Int16& count)
+{
+ return getLocaleItem_en_GB(count);
+}
+static const sal_Unicode replaceTo0[]
+ = { 0x5b, 0x24, 0x20a6, 0x2d, 0x41, 0x38, 0x30, 0x39, 0x5d, 0x0 };
+extern sal_Unicode const* const* SAL_CALL getAllFormats0_en_GB(sal_Int16& count,
+ const sal_Unicode*& from,
+ const sal_Unicode*& to);
+SAL_DLLPUBLIC_EXPORT sal_Unicode const* const* SAL_CALL
+getAllFormats0_en_NG(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ to = replaceTo0;
+ const sal_Unicode* tmp;
+ return getAllFormats0_en_GB(count, from, tmp);
+}
+extern sal_Unicode** SAL_CALL getDateAcceptancePatterns_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getDateAcceptancePatterns_en_NG(sal_Int16& count)
+{
+ return getDateAcceptancePatterns_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getCollatorImplementation_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getCollatorImplementation_en_NG(sal_Int16& count)
+{
+ return getCollatorImplementation_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getCollationOptions_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getCollationOptions_en_NG(sal_Int16& count)
+{
+ return getCollationOptions_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getSearchOptions_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getSearchOptions_en_NG(sal_Int16& count)
+{
+ return getSearchOptions_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getIndexAlgorithm_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getIndexAlgorithm_en_NG(sal_Int16& count)
+{
+ return getIndexAlgorithm_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getUnicodeScripts_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getUnicodeScripts_en_NG(sal_Int16& count)
+{
+ return getUnicodeScripts_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getFollowPageWords_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getFollowPageWords_en_NG(sal_Int16& count)
+{
+ return getFollowPageWords_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getAllCalendars_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getAllCalendars_en_NG(sal_Int16& count)
+{
+ return getAllCalendars_en_GB(count);
+}
+static const sal_Unicode defaultCurrency0[] = { 1 };
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = { 1 };
+static const sal_Unicode defaultCurrencyLegacyOnly0[] = { 0 };
+static const sal_Unicode currencyID0[] = { 0x4e, 0x47, 0x4e, 0x0 };
+static const sal_Unicode currencySymbol0[] = { 0x20a6, 0x0 };
+static const sal_Unicode bankSymbol0[] = { 0x4e, 0x47, 0x4e, 0x0 };
+static const sal_Unicode currencyName0[] = { 0x4e, 0x61, 0x69, 0x72, 0x61, 0x0 };
+static const sal_Unicode currencyDecimalPlaces0[] = { 2 };
+
+static const sal_Int16 currencyCount = 1;
+
+static const sal_Unicode* currencies[] = {
+ currencyID0,
+ currencySymbol0,
+ bankSymbol0,
+ currencyName0,
+ defaultCurrency0,
+ defaultCurrencyUsedInCompatibleFormatCodes0,
+ currencyDecimalPlaces0,
+ defaultCurrencyLegacyOnly0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getAllCurrencies_en_NG(sal_Int16& count)
+{
+ count = currencyCount;
+ return (sal_Unicode**)currencies;
+}
+extern sal_Unicode** SAL_CALL getTransliterations_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getTransliterations_en_NG(sal_Int16& count)
+{
+ return getTransliterations_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getForbiddenCharacters_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getForbiddenCharacters_en_NG(sal_Int16& count)
+{
+ return getForbiddenCharacters_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getBreakIteratorRules_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getBreakIteratorRules_en_NG(sal_Int16& count)
+{
+ return getBreakIteratorRules_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getReservedWords_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getReservedWords_en_NG(sal_Int16& count)
+{
+ return getReservedWords_en_GB(count);
+}
+// ---> ContinuousNumbering
+extern const sal_Unicode*** SAL_CALL getContinuousNumberingLevels_en_GB(sal_Int16& nStyles,
+ sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode*** SAL_CALL
+getContinuousNumberingLevels_en_NG(sal_Int16& nStyles, sal_Int16& nAttributes)
+{
+ return getContinuousNumberingLevels_en_GB(nStyles, nAttributes);
+}
+// ---> OutlineNumbering
+extern const sal_Unicode**** SAL_CALL getOutlineNumberingLevels_en_GB(sal_Int16& nStyles,
+ sal_Int16& nLevels,
+ sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode**** SAL_CALL
+getOutlineNumberingLevels_en_NG(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)
+{
+ return getOutlineNumberingLevels_en_GB(nStyles, nLevels, nAttributes);
+}
+} // extern "C"
diff --git a/vcl/workben/localestub/localedata_en_NZ.cxx b/vcl/workben/localestub/localedata_en_NZ.cxx
new file mode 100644
index 000000000..fc63a44ff
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_NZ.cxx
@@ -0,0 +1,563 @@
+#include <sal/types.h>
+
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = {0x65, 0x6e, 0x0};
+static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0};
+static const sal_Unicode countryID[] = {0x4e, 0x5a, 0x0};
+static const sal_Unicode countryDefaultName[] = {0x4e, 0x65, 0x77, 0x20, 0x5a, 0x65, 0x61, 0x6c, 0x61, 0x6e, 0x64, 0x0};
+static const sal_Unicode Variant[] = {0x0};
+
+static const sal_Unicode* LCInfoArray[] = {
+ langID,
+ langDefaultName,
+ countryID,
+ countryDefaultName,
+ Variant
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_NZ(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCInfoArray;
+}
+
+
+static const sal_Unicode LC_CTYPE_Unoid[] = {0x0};
+static const sal_Unicode dateSeparator[] = {0x2f, 0x0};
+static const sal_Unicode thousandSeparator[] = {0x2c, 0x0};
+static const sal_Unicode decimalSeparator[] = {0x2e, 0x0};
+static const sal_Unicode timeSeparator[] = {0x3a, 0x0};
+static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0};
+static const sal_Unicode listSeparator[] = {0x3b, 0x0};
+static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x2c, 0x20, 0x0};
+static const sal_Unicode LongDateDaySeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0};
+static const sal_Unicode quotationStart[] = {0x2018, 0x0};
+static const sal_Unicode quotationEnd[] = {0x2019, 0x0};
+static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0};
+static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0};
+static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0};
+static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0};
+static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0};
+
+static const sal_Unicode* LCType[] = {
+ LC_CTYPE_Unoid,
+ dateSeparator,
+ thousandSeparator,
+ decimalSeparator,
+ timeSeparator,
+ time100SecSeparator,
+ listSeparator,
+ quotationStart,
+ quotationEnd,
+ doubleQuotationStart,
+ doubleQuotationEnd,
+ timeAM,
+ timePM,
+ measurementSystem,
+ LongDateDayOfWeekSeparator,
+ LongDateDaySeparator,
+ LongDateMonthSeparator,
+ LongDateYearSeparator
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_NZ(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCType;
+}
+static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x24, 0x2d, 0x31, 0x34, 0x30, 0x39, 0x5d, 0x0};
+extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_AU(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to);
+SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_NZ(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ to = replaceTo0;
+ const sal_Unicode* tmp;
+ return getAllFormats0_en_AU(count, from, tmp);
+}
+extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_AU(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_NZ(sal_Int16& count)
+{
+ return getDateAcceptancePatterns_en_AU(count);
+}
+extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_NZ(sal_Int16& count)
+{
+ return getCollatorImplementation_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_NZ(sal_Int16& count)
+{
+ return getCollationOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_NZ(sal_Int16& count)
+{
+ return getSearchOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_NZ(sal_Int16& count)
+{
+ return getIndexAlgorithm_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_NZ(sal_Int16& count)
+{
+ return getUnicodeScripts_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_NZ(sal_Int16& count)
+{
+ return getFollowPageWords_en_US(count);
+}
+static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode defaultCalendar0[] = {1};
+static const sal_Unicode dayID00[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode dayDefaultAbbrvName00[] = {0x53, 0x75, 0x6e, 0x0};
+static const sal_Unicode dayDefaultFullName00[] = {0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName00[] = {0x53, 0x0};
+static const sal_Unicode dayID01[] = {0x6d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode dayDefaultAbbrvName01[] = {0x4d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode dayDefaultFullName01[] = {0x4d, 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName01[] = {0x4d, 0x0};
+static const sal_Unicode dayID02[] = {0x74, 0x75, 0x65, 0x0};
+static const sal_Unicode dayDefaultAbbrvName02[] = {0x54, 0x75, 0x65, 0x0};
+static const sal_Unicode dayDefaultFullName02[] = {0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName02[] = {0x54, 0x0};
+static const sal_Unicode dayID03[] = {0x77, 0x65, 0x64, 0x0};
+static const sal_Unicode dayDefaultAbbrvName03[] = {0x57, 0x65, 0x64, 0x0};
+static const sal_Unicode dayDefaultFullName03[] = {0x57, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName03[] = {0x57, 0x0};
+static const sal_Unicode dayID04[] = {0x74, 0x68, 0x75, 0x0};
+static const sal_Unicode dayDefaultAbbrvName04[] = {0x54, 0x68, 0x75, 0x0};
+static const sal_Unicode dayDefaultFullName04[] = {0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName04[] = {0x54, 0x0};
+static const sal_Unicode dayID05[] = {0x66, 0x72, 0x69, 0x0};
+static const sal_Unicode dayDefaultAbbrvName05[] = {0x46, 0x72, 0x69, 0x0};
+static const sal_Unicode dayDefaultFullName05[] = {0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName05[] = {0x46, 0x0};
+static const sal_Unicode dayID06[] = {0x73, 0x61, 0x74, 0x0};
+static const sal_Unicode dayDefaultAbbrvName06[] = {0x53, 0x61, 0x74, 0x0};
+static const sal_Unicode dayDefaultFullName06[] = {0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName06[] = {0x53, 0x0};
+static const sal_Unicode monthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode monthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode monthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode monthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode monthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode monthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode monthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode monthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode monthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode monthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode monthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode monthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode monthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode monthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode monthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode monthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode monthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode monthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode monthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode monthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode monthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode monthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode monthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode monthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode monthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode monthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode monthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode monthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode monthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode monthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode monthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode monthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode monthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode monthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode genitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode genitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode genitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode genitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode genitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode genitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode genitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode genitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode genitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode partitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode partitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode partitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode partitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode partitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode partitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode partitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode partitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode partitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode eraID00[] = {0x62, 0x63, 0x0};
+
+static const sal_Unicode eraDefaultAbbrvName00[] = {0x42, 0x43, 0x0};
+static const sal_Unicode eraDefaultFullName00[] = {0x42, 0x43, 0x0};
+static const sal_Unicode eraID01[] = {0x61, 0x64, 0x0};
+
+static const sal_Unicode eraDefaultAbbrvName01[] = {0x41, 0x44, 0x0};
+static const sal_Unicode eraDefaultFullName01[] = {0x41, 0x44, 0x0};
+static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode minimalDaysInFirstWeek0[] = {1};
+static const sal_Int16 calendarsCount = 1;
+
+static const sal_Unicode nbOfDays[] = {7};
+static const sal_Unicode nbOfMonths[] = {12};
+static const sal_Unicode nbOfGenitiveMonths[] = {12};
+static const sal_Unicode nbOfPartitiveMonths[] = {12};
+static const sal_Unicode nbOfEras[] = {2};
+static const sal_Unicode* calendars[] = {
+ nbOfDays,
+ nbOfMonths,
+ nbOfGenitiveMonths,
+ nbOfPartitiveMonths,
+ nbOfEras,
+ calendarID0,
+ defaultCalendar0,
+ dayID00,
+ dayDefaultAbbrvName00,
+ dayDefaultFullName00,
+ dayDefaultNarrowName00,
+ dayID01,
+ dayDefaultAbbrvName01,
+ dayDefaultFullName01,
+ dayDefaultNarrowName01,
+ dayID02,
+ dayDefaultAbbrvName02,
+ dayDefaultFullName02,
+ dayDefaultNarrowName02,
+ dayID03,
+ dayDefaultAbbrvName03,
+ dayDefaultFullName03,
+ dayDefaultNarrowName03,
+ dayID04,
+ dayDefaultAbbrvName04,
+ dayDefaultFullName04,
+ dayDefaultNarrowName04,
+ dayID05,
+ dayDefaultAbbrvName05,
+ dayDefaultFullName05,
+ dayDefaultNarrowName05,
+ dayID06,
+ dayDefaultAbbrvName06,
+ dayDefaultFullName06,
+ dayDefaultNarrowName06,
+ monthID00,
+ monthDefaultAbbrvName00,
+ monthDefaultFullName00,
+ monthDefaultNarrowName00,
+ monthID01,
+ monthDefaultAbbrvName01,
+ monthDefaultFullName01,
+ monthDefaultNarrowName01,
+ monthID02,
+ monthDefaultAbbrvName02,
+ monthDefaultFullName02,
+ monthDefaultNarrowName02,
+ monthID03,
+ monthDefaultAbbrvName03,
+ monthDefaultFullName03,
+ monthDefaultNarrowName03,
+ monthID04,
+ monthDefaultAbbrvName04,
+ monthDefaultFullName04,
+ monthDefaultNarrowName04,
+ monthID05,
+ monthDefaultAbbrvName05,
+ monthDefaultFullName05,
+ monthDefaultNarrowName05,
+ monthID06,
+ monthDefaultAbbrvName06,
+ monthDefaultFullName06,
+ monthDefaultNarrowName06,
+ monthID07,
+ monthDefaultAbbrvName07,
+ monthDefaultFullName07,
+ monthDefaultNarrowName07,
+ monthID08,
+ monthDefaultAbbrvName08,
+ monthDefaultFullName08,
+ monthDefaultNarrowName08,
+ monthID09,
+ monthDefaultAbbrvName09,
+ monthDefaultFullName09,
+ monthDefaultNarrowName09,
+ monthID010,
+ monthDefaultAbbrvName010,
+ monthDefaultFullName010,
+ monthDefaultNarrowName010,
+ monthID011,
+ monthDefaultAbbrvName011,
+ monthDefaultFullName011,
+ monthDefaultNarrowName011,
+ genitiveMonthID00,
+ genitiveMonthDefaultAbbrvName00,
+ genitiveMonthDefaultFullName00,
+ genitiveMonthDefaultNarrowName00,
+ genitiveMonthID01,
+ genitiveMonthDefaultAbbrvName01,
+ genitiveMonthDefaultFullName01,
+ genitiveMonthDefaultNarrowName01,
+ genitiveMonthID02,
+ genitiveMonthDefaultAbbrvName02,
+ genitiveMonthDefaultFullName02,
+ genitiveMonthDefaultNarrowName02,
+ genitiveMonthID03,
+ genitiveMonthDefaultAbbrvName03,
+ genitiveMonthDefaultFullName03,
+ genitiveMonthDefaultNarrowName03,
+ genitiveMonthID04,
+ genitiveMonthDefaultAbbrvName04,
+ genitiveMonthDefaultFullName04,
+ genitiveMonthDefaultNarrowName04,
+ genitiveMonthID05,
+ genitiveMonthDefaultAbbrvName05,
+ genitiveMonthDefaultFullName05,
+ genitiveMonthDefaultNarrowName05,
+ genitiveMonthID06,
+ genitiveMonthDefaultAbbrvName06,
+ genitiveMonthDefaultFullName06,
+ genitiveMonthDefaultNarrowName06,
+ genitiveMonthID07,
+ genitiveMonthDefaultAbbrvName07,
+ genitiveMonthDefaultFullName07,
+ genitiveMonthDefaultNarrowName07,
+ genitiveMonthID08,
+ genitiveMonthDefaultAbbrvName08,
+ genitiveMonthDefaultFullName08,
+ genitiveMonthDefaultNarrowName08,
+ genitiveMonthID09,
+ genitiveMonthDefaultAbbrvName09,
+ genitiveMonthDefaultFullName09,
+ genitiveMonthDefaultNarrowName09,
+ genitiveMonthID010,
+ genitiveMonthDefaultAbbrvName010,
+ genitiveMonthDefaultFullName010,
+ genitiveMonthDefaultNarrowName010,
+ genitiveMonthID011,
+ genitiveMonthDefaultAbbrvName011,
+ genitiveMonthDefaultFullName011,
+ genitiveMonthDefaultNarrowName011,
+ partitiveMonthID00,
+ partitiveMonthDefaultAbbrvName00,
+ partitiveMonthDefaultFullName00,
+ partitiveMonthDefaultNarrowName00,
+ partitiveMonthID01,
+ partitiveMonthDefaultAbbrvName01,
+ partitiveMonthDefaultFullName01,
+ partitiveMonthDefaultNarrowName01,
+ partitiveMonthID02,
+ partitiveMonthDefaultAbbrvName02,
+ partitiveMonthDefaultFullName02,
+ partitiveMonthDefaultNarrowName02,
+ partitiveMonthID03,
+ partitiveMonthDefaultAbbrvName03,
+ partitiveMonthDefaultFullName03,
+ partitiveMonthDefaultNarrowName03,
+ partitiveMonthID04,
+ partitiveMonthDefaultAbbrvName04,
+ partitiveMonthDefaultFullName04,
+ partitiveMonthDefaultNarrowName04,
+ partitiveMonthID05,
+ partitiveMonthDefaultAbbrvName05,
+ partitiveMonthDefaultFullName05,
+ partitiveMonthDefaultNarrowName05,
+ partitiveMonthID06,
+ partitiveMonthDefaultAbbrvName06,
+ partitiveMonthDefaultFullName06,
+ partitiveMonthDefaultNarrowName06,
+ partitiveMonthID07,
+ partitiveMonthDefaultAbbrvName07,
+ partitiveMonthDefaultFullName07,
+ partitiveMonthDefaultNarrowName07,
+ partitiveMonthID08,
+ partitiveMonthDefaultAbbrvName08,
+ partitiveMonthDefaultFullName08,
+ partitiveMonthDefaultNarrowName08,
+ partitiveMonthID09,
+ partitiveMonthDefaultAbbrvName09,
+ partitiveMonthDefaultFullName09,
+ partitiveMonthDefaultNarrowName09,
+ partitiveMonthID010,
+ partitiveMonthDefaultAbbrvName010,
+ partitiveMonthDefaultFullName010,
+ partitiveMonthDefaultNarrowName010,
+ partitiveMonthID011,
+ partitiveMonthDefaultAbbrvName011,
+ partitiveMonthDefaultFullName011,
+ partitiveMonthDefaultNarrowName011,
+ eraID00,
+ eraDefaultAbbrvName00,
+ eraDefaultFullName00,
+ eraID01,
+ eraDefaultAbbrvName01,
+ eraDefaultFullName01,
+ startDayOfWeek0,
+ minimalDaysInFirstWeek0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_NZ(sal_Int16& count)
+{
+ count = calendarsCount;
+ return (sal_Unicode**)calendars;
+}
+static const sal_Unicode defaultCurrency0[] = {1};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1};
+static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0};
+static const sal_Unicode currencyID0[] = {0x4e, 0x5a, 0x44, 0x0};
+static const sal_Unicode currencySymbol0[] = {0x24, 0x0};
+static const sal_Unicode bankSymbol0[] = {0x4e, 0x5a, 0x44, 0x0};
+static const sal_Unicode currencyName0[] = {0x4e, 0x65, 0x77, 0x20, 0x5a, 0x65, 0x61, 0x6c, 0x61, 0x6e, 0x64, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x0};
+static const sal_Unicode currencyDecimalPlaces0[] = {2};
+
+static const sal_Int16 currencyCount = 1;
+
+static const sal_Unicode* currencies[] = {
+ currencyID0,
+ currencySymbol0,
+ bankSymbol0,
+ currencyName0,
+ defaultCurrency0,
+ defaultCurrencyUsedInCompatibleFormatCodes0,
+ currencyDecimalPlaces0,
+ defaultCurrencyLegacyOnly0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_NZ(sal_Int16& count)
+{
+ count = currencyCount;
+ return (sal_Unicode**)currencies;
+}
+extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_NZ(sal_Int16& count)
+{
+ return getTransliterations_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_NZ(sal_Int16& count)
+{
+ return getForbiddenCharacters_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_NZ(sal_Int16& count)
+{
+ return getBreakIteratorRules_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_NZ(sal_Int16& count)
+{
+ return getReservedWords_en_US(count);
+}
+// ---> ContinuousNumbering
+extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_NZ(sal_Int16& nStyles, sal_Int16& nAttributes)
+{
+ return getContinuousNumberingLevels_en_US(nStyles, nAttributes);
+}
+// ---> OutlineNumbering
+extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_NZ(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)
+{
+ return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes);
+}
+} // extern "C"
+
diff --git a/vcl/workben/localestub/localedata_en_PH.cxx b/vcl/workben/localestub/localedata_en_PH.cxx
new file mode 100644
index 000000000..07c1b72a2
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_PH.cxx
@@ -0,0 +1,140 @@
+#include <sal/types.h>
+
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = {0x65, 0x6e, 0x0};
+static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0};
+static const sal_Unicode countryID[] = {0x50, 0x48, 0x0};
+static const sal_Unicode countryDefaultName[] = {0x50, 0x68, 0x69, 0x6c, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x65, 0x73, 0x0};
+static const sal_Unicode Variant[] = {0x0};
+
+static const sal_Unicode* LCInfoArray[] = {
+ langID,
+ langDefaultName,
+ countryID,
+ countryDefaultName,
+ Variant
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_PH(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCInfoArray;
+}
+extern sal_Unicode ** SAL_CALL getLocaleItem_en_CA(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_PH(sal_Int16& count)
+{
+ return getLocaleItem_en_CA(count);
+}
+static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x50, 0x68, 0x70, 0x2d, 0x33, 0x34, 0x30, 0x39, 0x5d, 0x0};
+extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_US(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to);
+SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_PH(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ to = replaceTo0;
+ const sal_Unicode* tmp;
+ return getAllFormats0_en_US(count, from, tmp);
+}
+extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_PH(sal_Int16& count)
+{
+ return getDateAcceptancePatterns_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_PH(sal_Int16& count)
+{
+ return getCollatorImplementation_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_PH(sal_Int16& count)
+{
+ return getCollationOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_PH(sal_Int16& count)
+{
+ return getSearchOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_PH(sal_Int16& count)
+{
+ return getIndexAlgorithm_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_PH(sal_Int16& count)
+{
+ return getUnicodeScripts_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_PH(sal_Int16& count)
+{
+ return getFollowPageWords_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getAllCalendars_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_PH(sal_Int16& count)
+{
+ return getAllCalendars_en_US(count);
+}
+static const sal_Unicode defaultCurrency0[] = {1};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1};
+static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0};
+static const sal_Unicode currencyID0[] = {0x50, 0x48, 0x50, 0x0};
+static const sal_Unicode currencySymbol0[] = {0x50, 0x68, 0x70, 0x0};
+static const sal_Unicode bankSymbol0[] = {0x50, 0x48, 0x50, 0x0};
+static const sal_Unicode currencyName0[] = {0x50, 0x65, 0x73, 0x6f, 0x0};
+static const sal_Unicode currencyDecimalPlaces0[] = {2};
+
+static const sal_Int16 currencyCount = 1;
+
+static const sal_Unicode* currencies[] = {
+ currencyID0,
+ currencySymbol0,
+ bankSymbol0,
+ currencyName0,
+ defaultCurrency0,
+ defaultCurrencyUsedInCompatibleFormatCodes0,
+ currencyDecimalPlaces0,
+ defaultCurrencyLegacyOnly0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_PH(sal_Int16& count)
+{
+ count = currencyCount;
+ return (sal_Unicode**)currencies;
+}
+extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_PH(sal_Int16& count)
+{
+ return getTransliterations_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_PH(sal_Int16& count)
+{
+ return getForbiddenCharacters_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_PH(sal_Int16& count)
+{
+ return getBreakIteratorRules_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_PH(sal_Int16& count)
+{
+ return getReservedWords_en_US(count);
+}
+// ---> ContinuousNumbering
+extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_PH(sal_Int16& nStyles, sal_Int16& nAttributes)
+{
+ return getContinuousNumberingLevels_en_US(nStyles, nAttributes);
+}
+// ---> OutlineNumbering
+extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_PH(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)
+{
+ return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes);
+}
+} // extern "C"
+
diff --git a/vcl/workben/localestub/localedata_en_TT.cxx b/vcl/workben/localestub/localedata_en_TT.cxx
new file mode 100644
index 000000000..0a99e9491
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_TT.cxx
@@ -0,0 +1,563 @@
+#include <sal/types.h>
+
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = {0x65, 0x6e, 0x0};
+static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0};
+static const sal_Unicode countryID[] = {0x54, 0x54, 0x0};
+static const sal_Unicode countryDefaultName[] = {0x54, 0x72, 0x69, 0x6e, 0x69, 0x64, 0x61, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x54, 0x6f, 0x62, 0x61, 0x67, 0x6f, 0x0};
+static const sal_Unicode Variant[] = {0x0};
+
+static const sal_Unicode* LCInfoArray[] = {
+ langID,
+ langDefaultName,
+ countryID,
+ countryDefaultName,
+ Variant
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_TT(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCInfoArray;
+}
+
+
+static const sal_Unicode LC_CTYPE_Unoid[] = {0x0};
+static const sal_Unicode dateSeparator[] = {0x2f, 0x0};
+static const sal_Unicode thousandSeparator[] = {0x2c, 0x0};
+static const sal_Unicode decimalSeparator[] = {0x2e, 0x0};
+static const sal_Unicode timeSeparator[] = {0x3a, 0x0};
+static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0};
+static const sal_Unicode listSeparator[] = {0x3b, 0x0};
+static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x2c, 0x20, 0x0};
+static const sal_Unicode LongDateDaySeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0};
+static const sal_Unicode quotationStart[] = {0x2018, 0x0};
+static const sal_Unicode quotationEnd[] = {0x2019, 0x0};
+static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0};
+static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0};
+static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0};
+static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0};
+static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0};
+
+static const sal_Unicode* LCType[] = {
+ LC_CTYPE_Unoid,
+ dateSeparator,
+ thousandSeparator,
+ decimalSeparator,
+ timeSeparator,
+ time100SecSeparator,
+ listSeparator,
+ quotationStart,
+ quotationEnd,
+ doubleQuotationStart,
+ doubleQuotationEnd,
+ timeAM,
+ timePM,
+ measurementSystem,
+ LongDateDayOfWeekSeparator,
+ LongDateDaySeparator,
+ LongDateMonthSeparator,
+ LongDateYearSeparator
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_TT(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCType;
+}
+static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x54, 0x54, 0x24, 0x2d, 0x32, 0x43, 0x30, 0x39, 0x5d, 0x0};
+extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_US(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to);
+SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_TT(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ to = replaceTo0;
+ const sal_Unicode* tmp;
+ return getAllFormats0_en_US(count, from, tmp);
+}
+extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_TT(sal_Int16& count)
+{
+ return getDateAcceptancePatterns_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_TT(sal_Int16& count)
+{
+ return getCollatorImplementation_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_TT(sal_Int16& count)
+{
+ return getCollationOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_TT(sal_Int16& count)
+{
+ return getSearchOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_TT(sal_Int16& count)
+{
+ return getIndexAlgorithm_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_TT(sal_Int16& count)
+{
+ return getUnicodeScripts_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_TT(sal_Int16& count)
+{
+ return getFollowPageWords_en_US(count);
+}
+static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode defaultCalendar0[] = {1};
+static const sal_Unicode dayID00[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode dayDefaultAbbrvName00[] = {0x53, 0x75, 0x6e, 0x0};
+static const sal_Unicode dayDefaultFullName00[] = {0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName00[] = {0x53, 0x0};
+static const sal_Unicode dayID01[] = {0x6d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode dayDefaultAbbrvName01[] = {0x4d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode dayDefaultFullName01[] = {0x4d, 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName01[] = {0x4d, 0x0};
+static const sal_Unicode dayID02[] = {0x74, 0x75, 0x65, 0x0};
+static const sal_Unicode dayDefaultAbbrvName02[] = {0x54, 0x75, 0x65, 0x0};
+static const sal_Unicode dayDefaultFullName02[] = {0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName02[] = {0x54, 0x0};
+static const sal_Unicode dayID03[] = {0x77, 0x65, 0x64, 0x0};
+static const sal_Unicode dayDefaultAbbrvName03[] = {0x57, 0x65, 0x64, 0x0};
+static const sal_Unicode dayDefaultFullName03[] = {0x57, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName03[] = {0x57, 0x0};
+static const sal_Unicode dayID04[] = {0x74, 0x68, 0x75, 0x0};
+static const sal_Unicode dayDefaultAbbrvName04[] = {0x54, 0x68, 0x75, 0x0};
+static const sal_Unicode dayDefaultFullName04[] = {0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName04[] = {0x54, 0x0};
+static const sal_Unicode dayID05[] = {0x66, 0x72, 0x69, 0x0};
+static const sal_Unicode dayDefaultAbbrvName05[] = {0x46, 0x72, 0x69, 0x0};
+static const sal_Unicode dayDefaultFullName05[] = {0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName05[] = {0x46, 0x0};
+static const sal_Unicode dayID06[] = {0x73, 0x61, 0x74, 0x0};
+static const sal_Unicode dayDefaultAbbrvName06[] = {0x53, 0x61, 0x74, 0x0};
+static const sal_Unicode dayDefaultFullName06[] = {0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName06[] = {0x53, 0x0};
+static const sal_Unicode monthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode monthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode monthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode monthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode monthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode monthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode monthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode monthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode monthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode monthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode monthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode monthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode monthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode monthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode monthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode monthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode monthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode monthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode monthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode monthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode monthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode monthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode monthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode monthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode monthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode monthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode monthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode monthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode monthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode monthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode monthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode monthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode monthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode monthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode genitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode genitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode genitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode genitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode genitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode genitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode genitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode genitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode genitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode partitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode partitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode partitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode partitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode partitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode partitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode partitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode partitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode partitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode eraID00[] = {0x62, 0x63, 0x0};
+
+static const sal_Unicode eraDefaultAbbrvName00[] = {0x42, 0x43, 0x0};
+static const sal_Unicode eraDefaultFullName00[] = {0x42, 0x43, 0x0};
+static const sal_Unicode eraID01[] = {0x61, 0x64, 0x0};
+
+static const sal_Unicode eraDefaultAbbrvName01[] = {0x41, 0x44, 0x0};
+static const sal_Unicode eraDefaultFullName01[] = {0x41, 0x44, 0x0};
+static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode minimalDaysInFirstWeek0[] = {1};
+static const sal_Int16 calendarsCount = 1;
+
+static const sal_Unicode nbOfDays[] = {7};
+static const sal_Unicode nbOfMonths[] = {12};
+static const sal_Unicode nbOfGenitiveMonths[] = {12};
+static const sal_Unicode nbOfPartitiveMonths[] = {12};
+static const sal_Unicode nbOfEras[] = {2};
+static const sal_Unicode* calendars[] = {
+ nbOfDays,
+ nbOfMonths,
+ nbOfGenitiveMonths,
+ nbOfPartitiveMonths,
+ nbOfEras,
+ calendarID0,
+ defaultCalendar0,
+ dayID00,
+ dayDefaultAbbrvName00,
+ dayDefaultFullName00,
+ dayDefaultNarrowName00,
+ dayID01,
+ dayDefaultAbbrvName01,
+ dayDefaultFullName01,
+ dayDefaultNarrowName01,
+ dayID02,
+ dayDefaultAbbrvName02,
+ dayDefaultFullName02,
+ dayDefaultNarrowName02,
+ dayID03,
+ dayDefaultAbbrvName03,
+ dayDefaultFullName03,
+ dayDefaultNarrowName03,
+ dayID04,
+ dayDefaultAbbrvName04,
+ dayDefaultFullName04,
+ dayDefaultNarrowName04,
+ dayID05,
+ dayDefaultAbbrvName05,
+ dayDefaultFullName05,
+ dayDefaultNarrowName05,
+ dayID06,
+ dayDefaultAbbrvName06,
+ dayDefaultFullName06,
+ dayDefaultNarrowName06,
+ monthID00,
+ monthDefaultAbbrvName00,
+ monthDefaultFullName00,
+ monthDefaultNarrowName00,
+ monthID01,
+ monthDefaultAbbrvName01,
+ monthDefaultFullName01,
+ monthDefaultNarrowName01,
+ monthID02,
+ monthDefaultAbbrvName02,
+ monthDefaultFullName02,
+ monthDefaultNarrowName02,
+ monthID03,
+ monthDefaultAbbrvName03,
+ monthDefaultFullName03,
+ monthDefaultNarrowName03,
+ monthID04,
+ monthDefaultAbbrvName04,
+ monthDefaultFullName04,
+ monthDefaultNarrowName04,
+ monthID05,
+ monthDefaultAbbrvName05,
+ monthDefaultFullName05,
+ monthDefaultNarrowName05,
+ monthID06,
+ monthDefaultAbbrvName06,
+ monthDefaultFullName06,
+ monthDefaultNarrowName06,
+ monthID07,
+ monthDefaultAbbrvName07,
+ monthDefaultFullName07,
+ monthDefaultNarrowName07,
+ monthID08,
+ monthDefaultAbbrvName08,
+ monthDefaultFullName08,
+ monthDefaultNarrowName08,
+ monthID09,
+ monthDefaultAbbrvName09,
+ monthDefaultFullName09,
+ monthDefaultNarrowName09,
+ monthID010,
+ monthDefaultAbbrvName010,
+ monthDefaultFullName010,
+ monthDefaultNarrowName010,
+ monthID011,
+ monthDefaultAbbrvName011,
+ monthDefaultFullName011,
+ monthDefaultNarrowName011,
+ genitiveMonthID00,
+ genitiveMonthDefaultAbbrvName00,
+ genitiveMonthDefaultFullName00,
+ genitiveMonthDefaultNarrowName00,
+ genitiveMonthID01,
+ genitiveMonthDefaultAbbrvName01,
+ genitiveMonthDefaultFullName01,
+ genitiveMonthDefaultNarrowName01,
+ genitiveMonthID02,
+ genitiveMonthDefaultAbbrvName02,
+ genitiveMonthDefaultFullName02,
+ genitiveMonthDefaultNarrowName02,
+ genitiveMonthID03,
+ genitiveMonthDefaultAbbrvName03,
+ genitiveMonthDefaultFullName03,
+ genitiveMonthDefaultNarrowName03,
+ genitiveMonthID04,
+ genitiveMonthDefaultAbbrvName04,
+ genitiveMonthDefaultFullName04,
+ genitiveMonthDefaultNarrowName04,
+ genitiveMonthID05,
+ genitiveMonthDefaultAbbrvName05,
+ genitiveMonthDefaultFullName05,
+ genitiveMonthDefaultNarrowName05,
+ genitiveMonthID06,
+ genitiveMonthDefaultAbbrvName06,
+ genitiveMonthDefaultFullName06,
+ genitiveMonthDefaultNarrowName06,
+ genitiveMonthID07,
+ genitiveMonthDefaultAbbrvName07,
+ genitiveMonthDefaultFullName07,
+ genitiveMonthDefaultNarrowName07,
+ genitiveMonthID08,
+ genitiveMonthDefaultAbbrvName08,
+ genitiveMonthDefaultFullName08,
+ genitiveMonthDefaultNarrowName08,
+ genitiveMonthID09,
+ genitiveMonthDefaultAbbrvName09,
+ genitiveMonthDefaultFullName09,
+ genitiveMonthDefaultNarrowName09,
+ genitiveMonthID010,
+ genitiveMonthDefaultAbbrvName010,
+ genitiveMonthDefaultFullName010,
+ genitiveMonthDefaultNarrowName010,
+ genitiveMonthID011,
+ genitiveMonthDefaultAbbrvName011,
+ genitiveMonthDefaultFullName011,
+ genitiveMonthDefaultNarrowName011,
+ partitiveMonthID00,
+ partitiveMonthDefaultAbbrvName00,
+ partitiveMonthDefaultFullName00,
+ partitiveMonthDefaultNarrowName00,
+ partitiveMonthID01,
+ partitiveMonthDefaultAbbrvName01,
+ partitiveMonthDefaultFullName01,
+ partitiveMonthDefaultNarrowName01,
+ partitiveMonthID02,
+ partitiveMonthDefaultAbbrvName02,
+ partitiveMonthDefaultFullName02,
+ partitiveMonthDefaultNarrowName02,
+ partitiveMonthID03,
+ partitiveMonthDefaultAbbrvName03,
+ partitiveMonthDefaultFullName03,
+ partitiveMonthDefaultNarrowName03,
+ partitiveMonthID04,
+ partitiveMonthDefaultAbbrvName04,
+ partitiveMonthDefaultFullName04,
+ partitiveMonthDefaultNarrowName04,
+ partitiveMonthID05,
+ partitiveMonthDefaultAbbrvName05,
+ partitiveMonthDefaultFullName05,
+ partitiveMonthDefaultNarrowName05,
+ partitiveMonthID06,
+ partitiveMonthDefaultAbbrvName06,
+ partitiveMonthDefaultFullName06,
+ partitiveMonthDefaultNarrowName06,
+ partitiveMonthID07,
+ partitiveMonthDefaultAbbrvName07,
+ partitiveMonthDefaultFullName07,
+ partitiveMonthDefaultNarrowName07,
+ partitiveMonthID08,
+ partitiveMonthDefaultAbbrvName08,
+ partitiveMonthDefaultFullName08,
+ partitiveMonthDefaultNarrowName08,
+ partitiveMonthID09,
+ partitiveMonthDefaultAbbrvName09,
+ partitiveMonthDefaultFullName09,
+ partitiveMonthDefaultNarrowName09,
+ partitiveMonthID010,
+ partitiveMonthDefaultAbbrvName010,
+ partitiveMonthDefaultFullName010,
+ partitiveMonthDefaultNarrowName010,
+ partitiveMonthID011,
+ partitiveMonthDefaultAbbrvName011,
+ partitiveMonthDefaultFullName011,
+ partitiveMonthDefaultNarrowName011,
+ eraID00,
+ eraDefaultAbbrvName00,
+ eraDefaultFullName00,
+ eraID01,
+ eraDefaultAbbrvName01,
+ eraDefaultFullName01,
+ startDayOfWeek0,
+ minimalDaysInFirstWeek0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_TT(sal_Int16& count)
+{
+ count = calendarsCount;
+ return (sal_Unicode**)calendars;
+}
+static const sal_Unicode defaultCurrency0[] = {1};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1};
+static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0};
+static const sal_Unicode currencyID0[] = {0x54, 0x54, 0x44, 0x0};
+static const sal_Unicode currencySymbol0[] = {0x54, 0x54, 0x24, 0x0};
+static const sal_Unicode bankSymbol0[] = {0x54, 0x54, 0x44, 0x0};
+static const sal_Unicode currencyName0[] = {0x54, 0x72, 0x69, 0x6e, 0x69, 0x64, 0x61, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x54, 0x6f, 0x62, 0x61, 0x67, 0x6f, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x0};
+static const sal_Unicode currencyDecimalPlaces0[] = {2};
+
+static const sal_Int16 currencyCount = 1;
+
+static const sal_Unicode* currencies[] = {
+ currencyID0,
+ currencySymbol0,
+ bankSymbol0,
+ currencyName0,
+ defaultCurrency0,
+ defaultCurrencyUsedInCompatibleFormatCodes0,
+ currencyDecimalPlaces0,
+ defaultCurrencyLegacyOnly0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_TT(sal_Int16& count)
+{
+ count = currencyCount;
+ return (sal_Unicode**)currencies;
+}
+extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_TT(sal_Int16& count)
+{
+ return getTransliterations_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_TT(sal_Int16& count)
+{
+ return getForbiddenCharacters_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_TT(sal_Int16& count)
+{
+ return getBreakIteratorRules_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_TT(sal_Int16& count)
+{
+ return getReservedWords_en_US(count);
+}
+// ---> ContinuousNumbering
+extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_TT(sal_Int16& nStyles, sal_Int16& nAttributes)
+{
+ return getContinuousNumberingLevels_en_US(nStyles, nAttributes);
+}
+// ---> OutlineNumbering
+extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_TT(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)
+{
+ return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes);
+}
+} // extern "C"
+
diff --git a/vcl/workben/localestub/localedata_en_US.cxx b/vcl/workben/localestub/localedata_en_US.cxx
new file mode 100644
index 000000000..6f09c68ab
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_US.cxx
@@ -0,0 +1,2609 @@
+#include <sal/types.h>
+
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = {0x65, 0x6e, 0x0};
+static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0};
+static const sal_Unicode countryID[] = {0x55, 0x53, 0x0};
+static const sal_Unicode countryDefaultName[] = {0x55, 0x6e, 0x69, 0x74, 0x65, 0x64, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x0};
+static const sal_Unicode Variant[] = {0x0};
+
+static const sal_Unicode* LCInfoArray[] = {
+ langID,
+ langDefaultName,
+ countryID,
+ countryDefaultName,
+ Variant
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_US(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCInfoArray;
+}
+
+
+static const sal_Unicode LC_CTYPE_Unoid[] = {0x0};
+static const sal_Unicode dateSeparator[] = {0x2f, 0x0};
+static const sal_Unicode thousandSeparator[] = {0x2c, 0x0};
+static const sal_Unicode decimalSeparator[] = {0x2e, 0x0};
+static const sal_Unicode timeSeparator[] = {0x3a, 0x0};
+static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0};
+static const sal_Unicode listSeparator[] = {0x3b, 0x0};
+static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x2c, 0x20, 0x0};
+static const sal_Unicode LongDateDaySeparator[] = {0x2c, 0x20, 0x0};
+static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0};
+static const sal_Unicode quotationStart[] = {0x2018, 0x0};
+static const sal_Unicode quotationEnd[] = {0x2019, 0x0};
+static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0};
+static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0};
+static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0};
+static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0};
+static const sal_Unicode measurementSystem[] = {0x55, 0x53, 0x0};
+
+static const sal_Unicode* LCType[] = {
+ LC_CTYPE_Unoid,
+ dateSeparator,
+ thousandSeparator,
+ decimalSeparator,
+ timeSeparator,
+ time100SecSeparator,
+ listSeparator,
+ quotationStart,
+ quotationEnd,
+ doubleQuotationStart,
+ doubleQuotationEnd,
+ timeAM,
+ timePM,
+ measurementSystem,
+ LongDateDayOfWeekSeparator,
+ LongDateDaySeparator,
+ LongDateMonthSeparator,
+ LongDateYearSeparator
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_US(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCType;
+}
+static const sal_Unicode replaceFrom0[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x0};
+static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x24, 0x2d, 0x34, 0x30, 0x39, 0x5d, 0x0};
+static const sal_Unicode FormatKey0[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement0[] = {1};
+static const sal_Unicode FormatType0[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage0[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex0[] = {0};
+static const sal_Unicode FormatCode0[] = {0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x0};
+static const sal_Unicode FormatDefaultName0[] = {0x0};
+static const sal_Unicode FormatKey1[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement1[] = {1};
+static const sal_Unicode FormatType1[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage1[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex1[] = {1};
+static const sal_Unicode FormatCode1[] = {0x30, 0x0};
+static const sal_Unicode FormatDefaultName1[] = {0x0};
+static const sal_Unicode FormatKey2[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement2[] = {0};
+static const sal_Unicode FormatType2[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage2[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex2[] = {2};
+static const sal_Unicode FormatCode2[] = {0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName2[] = {0x0};
+static const sal_Unicode FormatKey3[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement3[] = {0};
+static const sal_Unicode FormatType3[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage3[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex3[] = {3};
+static const sal_Unicode FormatCode3[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName3[] = {0x0};
+static const sal_Unicode FormatKey4[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement4[] = {0};
+static const sal_Unicode FormatType4[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage4[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex4[] = {4};
+static const sal_Unicode FormatCode4[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName4[] = {0x0};
+static const sal_Unicode FormatKey5[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement5[] = {0};
+static const sal_Unicode FormatType5[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage5[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex5[] = {5};
+static const sal_Unicode FormatCode5[] = {0x23, 0x2c, 0x23, 0x23, 0x23, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName5[] = {0x0};
+static const sal_Unicode FormatKey6[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement6[] = {0};
+static const sal_Unicode FormatType6[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage6[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex6[] = {80};
+static const sal_Unicode FormatCode6[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x29, 0x0};
+static const sal_Unicode FormatDefaultName6[] = {0x0};
+static const sal_Unicode FormatKey7[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement7[] = {0};
+static const sal_Unicode FormatType7[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage7[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex7[] = {81};
+static const sal_Unicode FormatCode7[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x29, 0x0};
+static const sal_Unicode FormatDefaultName7[] = {0x0};
+static const sal_Unicode FormatKey8[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement8[] = {0};
+static const sal_Unicode FormatType8[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage8[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex8[] = {6};
+static const sal_Unicode FormatCode8[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName8[] = {0x0};
+static const sal_Unicode FormatKey9[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement9[] = {1};
+static const sal_Unicode FormatType9[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage9[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex9[] = {7};
+static const sal_Unicode FormatCode9[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName9[] = {0x0};
+static const sal_Unicode FormatKey10[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement10[] = {0};
+static const sal_Unicode FormatType10[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage10[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex10[] = {78};
+static const sal_Unicode FormatCode10[] = {0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName10[] = {0x0};
+static const sal_Unicode FormatKey11[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement11[] = {1};
+static const sal_Unicode FormatType11[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage11[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex11[] = {8};
+static const sal_Unicode FormatCode11[] = {0x30, 0x25, 0x0};
+static const sal_Unicode FormatDefaultName11[] = {0x0};
+static const sal_Unicode FormatKey12[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement12[] = {1};
+static const sal_Unicode FormatType12[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage12[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex12[] = {9};
+static const sal_Unicode FormatCode12[] = {0x30, 0x2e, 0x30, 0x30, 0x25, 0x0};
+static const sal_Unicode FormatDefaultName12[] = {0x0};
+static const sal_Unicode FormatKey13[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement13[] = {1};
+static const sal_Unicode FormatType13[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage13[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex13[] = {12};
+static const sal_Unicode FormatCode13[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName13[] = {0x0};
+static const sal_Unicode FormatKey14[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement14[] = {0};
+static const sal_Unicode FormatType14[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage14[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex14[] = {13};
+static const sal_Unicode FormatCode14[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName14[] = {0x0};
+static const sal_Unicode FormatKey15[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement15[] = {0};
+static const sal_Unicode FormatType15[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage15[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex15[] = {14};
+static const sal_Unicode FormatCode15[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName15[] = {0x0};
+static const sal_Unicode FormatKey16[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement16[] = {1};
+static const sal_Unicode FormatType16[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage16[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex16[] = {15};
+static const sal_Unicode FormatCode16[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName16[] = {0x0};
+static const sal_Unicode FormatKey17[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement17[] = {0};
+static const sal_Unicode FormatType17[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage17[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex17[] = {16};
+static const sal_Unicode FormatCode17[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x20, 0x43, 0x43, 0x43, 0x0};
+static const sal_Unicode FormatDefaultName17[] = {0x0};
+static const sal_Unicode FormatKey18[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement18[] = {0};
+static const sal_Unicode FormatType18[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage18[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex18[] = {17};
+static const sal_Unicode FormatCode18[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x0};
+static const sal_Unicode FormatDefaultName18[] = {0x0};
+static const sal_Unicode FormatKey19[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement19[] = {0};
+static const sal_Unicode FormatType19[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage19[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex19[] = {82};
+static const sal_Unicode FormatCode19[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2a, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2a, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName19[] = {0x0};
+static const sal_Unicode FormatKey20[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement20[] = {0};
+static const sal_Unicode FormatType20[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage20[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex20[] = {83};
+static const sal_Unicode FormatCode20[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2a, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x2d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2a, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName20[] = {0x0};
+static const sal_Unicode FormatKey21[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement21[] = {1};
+static const sal_Unicode FormatType21[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage21[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex21[] = {18};
+static const sal_Unicode FormatCode21[] = {0x4d, 0x2f, 0x44, 0x2f, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName21[] = {0x0};
+static const sal_Unicode FormatKey22[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x39, 0x0};
+static const sal_Unicode defaultFormatElement22[] = {1};
+static const sal_Unicode FormatType22[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage22[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex22[] = {19};
+static const sal_Unicode FormatCode22[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName22[] = {0x0};
+static const sal_Unicode FormatKey23[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement23[] = {1};
+static const sal_Unicode FormatType23[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage23[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex23[] = {20};
+static const sal_Unicode FormatCode23[] = {0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x2f, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName23[] = {0x0};
+static const sal_Unicode FormatKey24[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement24[] = {0};
+static const sal_Unicode FormatType24[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage24[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex24[] = {21};
+static const sal_Unicode FormatCode24[] = {0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x2f, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName24[] = {0x0};
+static const sal_Unicode FormatKey25[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x30, 0x0};
+static const sal_Unicode defaultFormatElement25[] = {0};
+static const sal_Unicode FormatType25[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage25[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex25[] = {22};
+static const sal_Unicode FormatCode25[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName25[] = {0x0};
+static const sal_Unicode FormatKey26[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement26[] = {0};
+static const sal_Unicode FormatType26[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage26[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex26[] = {23};
+static const sal_Unicode FormatCode26[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName26[] = {0x0};
+static const sal_Unicode FormatKey27[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement27[] = {0};
+static const sal_Unicode FormatType27[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage27[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex27[] = {24};
+static const sal_Unicode FormatCode27[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x2e, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName27[] = {0x0};
+static const sal_Unicode FormatKey28[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement28[] = {0};
+static const sal_Unicode FormatType28[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage28[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex28[] = {25};
+static const sal_Unicode FormatCode28[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName28[] = {0x0};
+static const sal_Unicode FormatKey29[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement29[] = {0};
+static const sal_Unicode FormatType29[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage29[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex29[] = {26};
+static const sal_Unicode FormatCode29[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName29[] = {0x0};
+static const sal_Unicode FormatKey30[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement30[] = {0};
+static const sal_Unicode FormatType30[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage30[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex30[] = {27};
+static const sal_Unicode FormatCode30[] = {0x4e, 0x4e, 0x2c, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName30[] = {0x0};
+static const sal_Unicode FormatKey31[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement31[] = {0};
+static const sal_Unicode FormatType31[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage31[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex31[] = {28};
+static const sal_Unicode FormatCode31[] = {0x4e, 0x4e, 0x20, 0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName31[] = {0x0};
+static const sal_Unicode FormatKey32[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement32[] = {0};
+static const sal_Unicode FormatType32[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage32[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex32[] = {29};
+static const sal_Unicode FormatCode32[] = {0x4e, 0x4e, 0x2c, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName32[] = {0x0};
+static const sal_Unicode FormatKey33[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement33[] = {0};
+static const sal_Unicode FormatType33[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage33[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex33[] = {30};
+static const sal_Unicode FormatCode33[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x2c, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName33[] = {0x0};
+static const sal_Unicode FormatKey34[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement34[] = {0};
+static const sal_Unicode FormatType34[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage34[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex34[] = {31};
+static const sal_Unicode FormatCode34[] = {0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName34[] = {0x0};
+static const sal_Unicode FormatKey35[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x39, 0x0};
+static const sal_Unicode defaultFormatElement35[] = {0};
+static const sal_Unicode FormatType35[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage35[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex35[] = {32};
+static const sal_Unicode FormatCode35[] = {0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName35[] = {0x0};
+static const sal_Unicode FormatKey36[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x30, 0x0};
+static const sal_Unicode defaultFormatElement36[] = {0};
+static const sal_Unicode FormatType36[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage36[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex36[] = {33};
+static const sal_Unicode FormatCode36[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName36[] = {0x49, 0x53, 0x4f, 0x20, 0x38, 0x36, 0x30, 0x31, 0x0};
+static const sal_Unicode FormatKey37[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement37[] = {0};
+static const sal_Unicode FormatType37[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage37[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex37[] = {34};
+static const sal_Unicode FormatCode37[] = {0x4d, 0x4d, 0x2f, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName37[] = {0x0};
+static const sal_Unicode FormatKey38[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement38[] = {0};
+static const sal_Unicode FormatType38[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage38[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex38[] = {35};
+static const sal_Unicode FormatCode38[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName38[] = {0x0};
+static const sal_Unicode FormatKey39[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement39[] = {0};
+static const sal_Unicode FormatType39[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage39[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex39[] = {36};
+static const sal_Unicode FormatCode39[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName39[] = {0x0};
+static const sal_Unicode FormatKey40[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement40[] = {0};
+static const sal_Unicode FormatType40[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage40[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex40[] = {37};
+static const sal_Unicode FormatCode40[] = {0x51, 0x51, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName40[] = {0x0};
+static const sal_Unicode FormatKey41[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement41[] = {0};
+static const sal_Unicode FormatType41[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage41[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex41[] = {38};
+static const sal_Unicode FormatCode41[] = {0x57, 0x57, 0x0};
+static const sal_Unicode FormatDefaultName41[] = {0x0};
+static const sal_Unicode FormatKey42[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement42[] = {0};
+static const sal_Unicode FormatType42[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage42[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex42[] = {39};
+static const sal_Unicode FormatCode42[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName42[] = {0x0};
+static const sal_Unicode FormatKey43[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement43[] = {0};
+static const sal_Unicode FormatType43[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage43[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex43[] = {40};
+static const sal_Unicode FormatCode43[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName43[] = {0x0};
+static const sal_Unicode FormatKey44[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement44[] = {1};
+static const sal_Unicode FormatType44[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage44[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex44[] = {41};
+static const sal_Unicode FormatCode44[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName44[] = {0x0};
+static const sal_Unicode FormatKey45[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement45[] = {1};
+static const sal_Unicode FormatType45[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage45[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex45[] = {42};
+static const sal_Unicode FormatCode45[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName45[] = {0x0};
+static const sal_Unicode FormatKey46[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement46[] = {0};
+static const sal_Unicode FormatType46[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage46[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex46[] = {43};
+static const sal_Unicode FormatCode46[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName46[] = {0x0};
+static const sal_Unicode FormatKey47[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement47[] = {0};
+static const sal_Unicode FormatType47[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage47[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex47[] = {44};
+static const sal_Unicode FormatCode47[] = {0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName47[] = {0x0};
+static const sal_Unicode FormatKey48[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement48[] = {0};
+static const sal_Unicode FormatType48[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage48[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex48[] = {45};
+static const sal_Unicode FormatCode48[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName48[] = {0x0};
+static const sal_Unicode FormatKey49[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement49[] = {1};
+static const sal_Unicode FormatType49[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage49[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex49[] = {46};
+static const sal_Unicode FormatCode49[] = {0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x2f, 0x59, 0x59, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName49[] = {0x0};
+static const sal_Unicode FormatKey50[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement50[] = {0};
+static const sal_Unicode FormatType50[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage50[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex50[] = {47};
+static const sal_Unicode FormatCode50[] = {0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x2f, 0x59, 0x59, 0x59, 0x59, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName50[] = {0x0};
+
+static const sal_Int16 FormatElementsCount0 = 51;
+static const sal_Unicode* FormatElementsArray0[] = {
+ FormatCode0,
+ FormatDefaultName0,
+ FormatKey0,
+ FormatType0,
+ FormatUsage0,
+ Formatindex0,
+ defaultFormatElement0,
+ FormatCode1,
+ FormatDefaultName1,
+ FormatKey1,
+ FormatType1,
+ FormatUsage1,
+ Formatindex1,
+ defaultFormatElement1,
+ FormatCode2,
+ FormatDefaultName2,
+ FormatKey2,
+ FormatType2,
+ FormatUsage2,
+ Formatindex2,
+ defaultFormatElement2,
+ FormatCode3,
+ FormatDefaultName3,
+ FormatKey3,
+ FormatType3,
+ FormatUsage3,
+ Formatindex3,
+ defaultFormatElement3,
+ FormatCode4,
+ FormatDefaultName4,
+ FormatKey4,
+ FormatType4,
+ FormatUsage4,
+ Formatindex4,
+ defaultFormatElement4,
+ FormatCode5,
+ FormatDefaultName5,
+ FormatKey5,
+ FormatType5,
+ FormatUsage5,
+ Formatindex5,
+ defaultFormatElement5,
+ FormatCode6,
+ FormatDefaultName6,
+ FormatKey6,
+ FormatType6,
+ FormatUsage6,
+ Formatindex6,
+ defaultFormatElement6,
+ FormatCode7,
+ FormatDefaultName7,
+ FormatKey7,
+ FormatType7,
+ FormatUsage7,
+ Formatindex7,
+ defaultFormatElement7,
+ FormatCode8,
+ FormatDefaultName8,
+ FormatKey8,
+ FormatType8,
+ FormatUsage8,
+ Formatindex8,
+ defaultFormatElement8,
+ FormatCode9,
+ FormatDefaultName9,
+ FormatKey9,
+ FormatType9,
+ FormatUsage9,
+ Formatindex9,
+ defaultFormatElement9,
+ FormatCode10,
+ FormatDefaultName10,
+ FormatKey10,
+ FormatType10,
+ FormatUsage10,
+ Formatindex10,
+ defaultFormatElement10,
+ FormatCode11,
+ FormatDefaultName11,
+ FormatKey11,
+ FormatType11,
+ FormatUsage11,
+ Formatindex11,
+ defaultFormatElement11,
+ FormatCode12,
+ FormatDefaultName12,
+ FormatKey12,
+ FormatType12,
+ FormatUsage12,
+ Formatindex12,
+ defaultFormatElement12,
+ FormatCode13,
+ FormatDefaultName13,
+ FormatKey13,
+ FormatType13,
+ FormatUsage13,
+ Formatindex13,
+ defaultFormatElement13,
+ FormatCode14,
+ FormatDefaultName14,
+ FormatKey14,
+ FormatType14,
+ FormatUsage14,
+ Formatindex14,
+ defaultFormatElement14,
+ FormatCode15,
+ FormatDefaultName15,
+ FormatKey15,
+ FormatType15,
+ FormatUsage15,
+ Formatindex15,
+ defaultFormatElement15,
+ FormatCode16,
+ FormatDefaultName16,
+ FormatKey16,
+ FormatType16,
+ FormatUsage16,
+ Formatindex16,
+ defaultFormatElement16,
+ FormatCode17,
+ FormatDefaultName17,
+ FormatKey17,
+ FormatType17,
+ FormatUsage17,
+ Formatindex17,
+ defaultFormatElement17,
+ FormatCode18,
+ FormatDefaultName18,
+ FormatKey18,
+ FormatType18,
+ FormatUsage18,
+ Formatindex18,
+ defaultFormatElement18,
+ FormatCode19,
+ FormatDefaultName19,
+ FormatKey19,
+ FormatType19,
+ FormatUsage19,
+ Formatindex19,
+ defaultFormatElement19,
+ FormatCode20,
+ FormatDefaultName20,
+ FormatKey20,
+ FormatType20,
+ FormatUsage20,
+ Formatindex20,
+ defaultFormatElement20,
+ FormatCode21,
+ FormatDefaultName21,
+ FormatKey21,
+ FormatType21,
+ FormatUsage21,
+ Formatindex21,
+ defaultFormatElement21,
+ FormatCode22,
+ FormatDefaultName22,
+ FormatKey22,
+ FormatType22,
+ FormatUsage22,
+ Formatindex22,
+ defaultFormatElement22,
+ FormatCode23,
+ FormatDefaultName23,
+ FormatKey23,
+ FormatType23,
+ FormatUsage23,
+ Formatindex23,
+ defaultFormatElement23,
+ FormatCode24,
+ FormatDefaultName24,
+ FormatKey24,
+ FormatType24,
+ FormatUsage24,
+ Formatindex24,
+ defaultFormatElement24,
+ FormatCode25,
+ FormatDefaultName25,
+ FormatKey25,
+ FormatType25,
+ FormatUsage25,
+ Formatindex25,
+ defaultFormatElement25,
+ FormatCode26,
+ FormatDefaultName26,
+ FormatKey26,
+ FormatType26,
+ FormatUsage26,
+ Formatindex26,
+ defaultFormatElement26,
+ FormatCode27,
+ FormatDefaultName27,
+ FormatKey27,
+ FormatType27,
+ FormatUsage27,
+ Formatindex27,
+ defaultFormatElement27,
+ FormatCode28,
+ FormatDefaultName28,
+ FormatKey28,
+ FormatType28,
+ FormatUsage28,
+ Formatindex28,
+ defaultFormatElement28,
+ FormatCode29,
+ FormatDefaultName29,
+ FormatKey29,
+ FormatType29,
+ FormatUsage29,
+ Formatindex29,
+ defaultFormatElement29,
+ FormatCode30,
+ FormatDefaultName30,
+ FormatKey30,
+ FormatType30,
+ FormatUsage30,
+ Formatindex30,
+ defaultFormatElement30,
+ FormatCode31,
+ FormatDefaultName31,
+ FormatKey31,
+ FormatType31,
+ FormatUsage31,
+ Formatindex31,
+ defaultFormatElement31,
+ FormatCode32,
+ FormatDefaultName32,
+ FormatKey32,
+ FormatType32,
+ FormatUsage32,
+ Formatindex32,
+ defaultFormatElement32,
+ FormatCode33,
+ FormatDefaultName33,
+ FormatKey33,
+ FormatType33,
+ FormatUsage33,
+ Formatindex33,
+ defaultFormatElement33,
+ FormatCode34,
+ FormatDefaultName34,
+ FormatKey34,
+ FormatType34,
+ FormatUsage34,
+ Formatindex34,
+ defaultFormatElement34,
+ FormatCode35,
+ FormatDefaultName35,
+ FormatKey35,
+ FormatType35,
+ FormatUsage35,
+ Formatindex35,
+ defaultFormatElement35,
+ FormatCode36,
+ FormatDefaultName36,
+ FormatKey36,
+ FormatType36,
+ FormatUsage36,
+ Formatindex36,
+ defaultFormatElement36,
+ FormatCode37,
+ FormatDefaultName37,
+ FormatKey37,
+ FormatType37,
+ FormatUsage37,
+ Formatindex37,
+ defaultFormatElement37,
+ FormatCode38,
+ FormatDefaultName38,
+ FormatKey38,
+ FormatType38,
+ FormatUsage38,
+ Formatindex38,
+ defaultFormatElement38,
+ FormatCode39,
+ FormatDefaultName39,
+ FormatKey39,
+ FormatType39,
+ FormatUsage39,
+ Formatindex39,
+ defaultFormatElement39,
+ FormatCode40,
+ FormatDefaultName40,
+ FormatKey40,
+ FormatType40,
+ FormatUsage40,
+ Formatindex40,
+ defaultFormatElement40,
+ FormatCode41,
+ FormatDefaultName41,
+ FormatKey41,
+ FormatType41,
+ FormatUsage41,
+ Formatindex41,
+ defaultFormatElement41,
+ FormatCode42,
+ FormatDefaultName42,
+ FormatKey42,
+ FormatType42,
+ FormatUsage42,
+ Formatindex42,
+ defaultFormatElement42,
+ FormatCode43,
+ FormatDefaultName43,
+ FormatKey43,
+ FormatType43,
+ FormatUsage43,
+ Formatindex43,
+ defaultFormatElement43,
+ FormatCode44,
+ FormatDefaultName44,
+ FormatKey44,
+ FormatType44,
+ FormatUsage44,
+ Formatindex44,
+ defaultFormatElement44,
+ FormatCode45,
+ FormatDefaultName45,
+ FormatKey45,
+ FormatType45,
+ FormatUsage45,
+ Formatindex45,
+ defaultFormatElement45,
+ FormatCode46,
+ FormatDefaultName46,
+ FormatKey46,
+ FormatType46,
+ FormatUsage46,
+ Formatindex46,
+ defaultFormatElement46,
+ FormatCode47,
+ FormatDefaultName47,
+ FormatKey47,
+ FormatType47,
+ FormatUsage47,
+ Formatindex47,
+ defaultFormatElement47,
+ FormatCode48,
+ FormatDefaultName48,
+ FormatKey48,
+ FormatType48,
+ FormatUsage48,
+ Formatindex48,
+ defaultFormatElement48,
+ FormatCode49,
+ FormatDefaultName49,
+ FormatKey49,
+ FormatType49,
+ FormatUsage49,
+ Formatindex49,
+ defaultFormatElement49,
+ FormatCode50,
+ FormatDefaultName50,
+ FormatKey50,
+ FormatType50,
+ FormatUsage50,
+ Formatindex50,
+ defaultFormatElement50,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_US(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ count = FormatElementsCount0;
+ from = replaceFrom0;
+ to = replaceTo0;
+ return (sal_Unicode**)FormatElementsArray0;
+}
+static const sal_Unicode DateAcceptancePattern0[] = {0x4d, 0x2f, 0x44, 0x2f, 0x59, 0x0};
+static const sal_Unicode DateAcceptancePattern1[] = {0x4d, 0x2f, 0x44, 0x0};
+static const sal_Int16 DateAcceptancePatternsCount = 2;
+static const sal_Unicode* DateAcceptancePatternsArray[] = {
+ DateAcceptancePattern0,
+ DateAcceptancePattern1,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_US(sal_Int16& count)
+{
+ count = DateAcceptancePatternsCount;
+ return (sal_Unicode**)DateAcceptancePatternsArray;
+}
+static const sal_Unicode replaceFrom1[] = {0x0};
+static const sal_Unicode replaceTo1[] = {0x0};
+static const sal_Unicode FormatKey51[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement51[] = {0};
+static const sal_Unicode FormatType51[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage51[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex51[] = {60};
+static const sal_Unicode FormatCode51[] = {0x5b, 0x7e, 0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x5d, 0x4e, 0x4e, 0x4e, 0x4e, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName51[] = {0x0};
+static const sal_Unicode FormatKey52[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement52[] = {0};
+static const sal_Unicode FormatType52[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage52[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex52[] = {61};
+static const sal_Unicode FormatCode52[] = {0x5b, 0x7e, 0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x5d, 0x4e, 0x4e, 0x4e, 0x4e, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName52[] = {0x0};
+static const sal_Unicode FormatKey53[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement53[] = {0};
+static const sal_Unicode FormatType53[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage53[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex53[] = {62};
+static const sal_Unicode FormatCode53[] = {0x5b, 0x7e, 0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x5d, 0x4e, 0x4e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName53[] = {0x0};
+static const sal_Unicode FormatKey54[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement54[] = {0};
+static const sal_Unicode FormatType54[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage54[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex54[] = {63};
+static const sal_Unicode FormatCode54[] = {0x5b, 0x7e, 0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x5d, 0x4e, 0x4e, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName54[] = {0x0};
+static const sal_Unicode FormatKey55[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement55[] = {0};
+static const sal_Unicode FormatType55[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage55[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex55[] = {64};
+static const sal_Unicode FormatCode55[] = {0x5b, 0x7e, 0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x5d, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName55[] = {0x0};
+static const sal_Unicode FormatKey56[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement56[] = {0};
+static const sal_Unicode FormatType56[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage56[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex56[] = {65};
+static const sal_Unicode FormatCode56[] = {0x5b, 0x7e, 0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x5d, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName56[] = {0x0};
+static const sal_Unicode FormatKey57[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement57[] = {0};
+static const sal_Unicode FormatType57[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage57[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex57[] = {66};
+static const sal_Unicode FormatCode57[] = {0x5b, 0x7e, 0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x5d, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName57[] = {0x0};
+static const sal_Unicode FormatKey58[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x39, 0x0};
+static const sal_Unicode defaultFormatElement58[] = {0};
+static const sal_Unicode FormatType58[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage58[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex58[] = {67};
+static const sal_Unicode FormatCode58[] = {0x5b, 0x7e, 0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x5d, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName58[] = {0x0};
+static const sal_Unicode FormatKey59[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x30, 0x0};
+static const sal_Unicode defaultFormatElement59[] = {0};
+static const sal_Unicode FormatType59[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage59[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex59[] = {68};
+static const sal_Unicode FormatCode59[] = {0x5b, 0x7e, 0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x5d, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName59[] = {0x0};
+static const sal_Unicode FormatKey60[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement60[] = {0};
+static const sal_Unicode FormatType60[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage60[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex60[] = {69};
+static const sal_Unicode FormatCode60[] = {0x5b, 0x7e, 0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x5d, 0x4d, 0x4d, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName60[] = {0x0};
+
+static const sal_Int16 FormatElementsCount1 = 10;
+static const sal_Unicode* FormatElementsArray1[] = {
+ FormatCode51,
+ FormatDefaultName51,
+ FormatKey51,
+ FormatType51,
+ FormatUsage51,
+ Formatindex51,
+ defaultFormatElement51,
+ FormatCode52,
+ FormatDefaultName52,
+ FormatKey52,
+ FormatType52,
+ FormatUsage52,
+ Formatindex52,
+ defaultFormatElement52,
+ FormatCode53,
+ FormatDefaultName53,
+ FormatKey53,
+ FormatType53,
+ FormatUsage53,
+ Formatindex53,
+ defaultFormatElement53,
+ FormatCode54,
+ FormatDefaultName54,
+ FormatKey54,
+ FormatType54,
+ FormatUsage54,
+ Formatindex54,
+ defaultFormatElement54,
+ FormatCode55,
+ FormatDefaultName55,
+ FormatKey55,
+ FormatType55,
+ FormatUsage55,
+ Formatindex55,
+ defaultFormatElement55,
+ FormatCode56,
+ FormatDefaultName56,
+ FormatKey56,
+ FormatType56,
+ FormatUsage56,
+ Formatindex56,
+ defaultFormatElement56,
+ FormatCode57,
+ FormatDefaultName57,
+ FormatKey57,
+ FormatType57,
+ FormatUsage57,
+ Formatindex57,
+ defaultFormatElement57,
+ FormatCode58,
+ FormatDefaultName58,
+ FormatKey58,
+ FormatType58,
+ FormatUsage58,
+ Formatindex58,
+ defaultFormatElement58,
+ FormatCode59,
+ FormatDefaultName59,
+ FormatKey59,
+ FormatType59,
+ FormatUsage59,
+ Formatindex59,
+ defaultFormatElement59,
+ FormatCode60,
+ FormatDefaultName60,
+ FormatKey60,
+ FormatType60,
+ FormatUsage60,
+ Formatindex60,
+ defaultFormatElement60,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats1_en_US(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ count = FormatElementsCount1;
+ from = replaceFrom1;
+ to = replaceTo1;
+ return (sal_Unicode**)FormatElementsArray1;
+}
+static const sal_Unicode CollatorID0[] = {0x61, 0x6c, 0x70, 0x68, 0x61, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x0};
+static const sal_Unicode CollatorRule0[] = {0x0};
+static const sal_Unicode defaultCollator0[] = {1};
+
+static const sal_Unicode collationOption0[] = {0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x0};
+static const sal_Int16 nbOfCollationOptions = 1;
+
+static const sal_Int16 nbOfCollations = 1;
+
+
+static const sal_Unicode* LCCollatorArray[] = {
+ CollatorID0,
+ defaultCollator0,
+ CollatorRule0,
+};
+
+static const sal_Unicode* collationOptions[] = {collationOption0, NULL };
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count)
+{
+ count = nbOfCollations;
+ return (sal_Unicode**)LCCollatorArray;
+}
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count)
+{
+ count = nbOfCollationOptions;
+ return (sal_Unicode**)collationOptions;
+}
+static const sal_Unicode searchOption0[] = {0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x0};
+static const sal_Int16 nbOfSearchOptions = 1;
+
+static const sal_Unicode* searchOptions[] = {searchOption0, NULL };
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count)
+{
+ count = nbOfSearchOptions;
+ return (sal_Unicode**)searchOptions;
+}
+static const sal_Unicode IndexID0[] = {0x61, 0x6c, 0x70, 0x68, 0x61, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x0};
+static const sal_Unicode IndexModule0[] = {0x0};
+static const sal_Unicode IndexKey0[] = {0x41, 0x2d, 0x5a, 0x0};
+static const sal_Unicode defaultIndex0[] = {1};
+static const sal_Unicode defaultPhonetic0[] = {0};
+
+static const sal_Unicode unicodeScript0[] = {0x30, 0x0};
+static const sal_Unicode unicodeScript1[] = {0x31, 0x0};
+static const sal_Unicode followPageWord0[] = {0x70, 0x2e, 0x0};
+static const sal_Unicode followPageWord1[] = {0x70, 0x70, 0x2e, 0x0};
+static const sal_Int16 nbOfIndexs = 1;
+
+
+static const sal_Unicode* IndexArray[] = {
+ IndexID0,
+ IndexModule0,
+ IndexKey0,
+ defaultIndex0,
+ defaultPhonetic0,
+};
+
+static const sal_Int16 nbOfUnicodeScripts = 2;
+
+static const sal_Unicode* UnicodeScriptArray[] = {unicodeScript0, unicodeScript1, NULL };
+
+static const sal_Int16 nbOfPageWords = 2;
+
+static const sal_Unicode* FollowPageWordArray[] = {
+ followPageWord0,
+ followPageWord1,
+ NULL
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count)
+{
+ count = nbOfIndexs;
+ return (sal_Unicode**)IndexArray;
+}
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count)
+{
+ count = nbOfUnicodeScripts;
+ return (sal_Unicode**)UnicodeScriptArray;
+}
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count)
+{
+ count = nbOfPageWords;
+ return (sal_Unicode**)FollowPageWordArray;
+}
+static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode defaultCalendar0[] = {1};
+static const sal_Unicode dayID00[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode dayDefaultAbbrvName00[] = {0x53, 0x75, 0x6e, 0x0};
+static const sal_Unicode dayDefaultFullName00[] = {0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName00[] = {0x53, 0x0};
+static const sal_Unicode dayID01[] = {0x6d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode dayDefaultAbbrvName01[] = {0x4d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode dayDefaultFullName01[] = {0x4d, 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName01[] = {0x4d, 0x0};
+static const sal_Unicode dayID02[] = {0x74, 0x75, 0x65, 0x0};
+static const sal_Unicode dayDefaultAbbrvName02[] = {0x54, 0x75, 0x65, 0x0};
+static const sal_Unicode dayDefaultFullName02[] = {0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName02[] = {0x54, 0x0};
+static const sal_Unicode dayID03[] = {0x77, 0x65, 0x64, 0x0};
+static const sal_Unicode dayDefaultAbbrvName03[] = {0x57, 0x65, 0x64, 0x0};
+static const sal_Unicode dayDefaultFullName03[] = {0x57, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName03[] = {0x57, 0x0};
+static const sal_Unicode dayID04[] = {0x74, 0x68, 0x75, 0x0};
+static const sal_Unicode dayDefaultAbbrvName04[] = {0x54, 0x68, 0x75, 0x0};
+static const sal_Unicode dayDefaultFullName04[] = {0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName04[] = {0x54, 0x0};
+static const sal_Unicode dayID05[] = {0x66, 0x72, 0x69, 0x0};
+static const sal_Unicode dayDefaultAbbrvName05[] = {0x46, 0x72, 0x69, 0x0};
+static const sal_Unicode dayDefaultFullName05[] = {0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName05[] = {0x46, 0x0};
+static const sal_Unicode dayID06[] = {0x73, 0x61, 0x74, 0x0};
+static const sal_Unicode dayDefaultAbbrvName06[] = {0x53, 0x61, 0x74, 0x0};
+static const sal_Unicode dayDefaultFullName06[] = {0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName06[] = {0x53, 0x0};
+static const sal_Unicode monthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode monthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode monthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode monthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode monthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode monthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode monthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode monthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode monthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode monthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode monthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode monthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode monthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode monthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode monthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode monthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode monthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode monthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode monthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode monthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode monthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode monthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode monthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode monthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode monthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode monthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode monthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode monthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode monthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode monthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode monthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode monthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode monthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode monthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode genitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode genitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode genitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode genitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode genitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode genitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode genitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode genitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode genitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode partitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode partitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode partitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode partitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode partitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode partitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode partitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode partitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode partitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode eraID00[] = {0x62, 0x63, 0x0};
+
+static const sal_Unicode eraDefaultAbbrvName00[] = {0x42, 0x43, 0x0};
+static const sal_Unicode eraDefaultFullName00[] = {0x42, 0x43, 0x0};
+static const sal_Unicode eraID01[] = {0x61, 0x64, 0x0};
+
+static const sal_Unicode eraDefaultAbbrvName01[] = {0x41, 0x44, 0x0};
+static const sal_Unicode eraDefaultFullName01[] = {0x41, 0x44, 0x0};
+static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode minimalDaysInFirstWeek0[] = {1};
+static const sal_Unicode calendarID1[] = {0x6a, 0x65, 0x77, 0x69, 0x73, 0x68, 0x0};
+static const sal_Unicode defaultCalendar1[] = {0};
+static const sal_Unicode dayID10[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode dayDefaultAbbrvName10[] = {0x53, 0x75, 0x6e, 0x0};
+static const sal_Unicode dayDefaultFullName10[] = {0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName10[] = {0x53, 0x0};
+static const sal_Unicode dayID11[] = {0x6d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode dayDefaultAbbrvName11[] = {0x4d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode dayDefaultFullName11[] = {0x4d, 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName11[] = {0x4d, 0x0};
+static const sal_Unicode dayID12[] = {0x74, 0x75, 0x65, 0x0};
+static const sal_Unicode dayDefaultAbbrvName12[] = {0x54, 0x75, 0x65, 0x0};
+static const sal_Unicode dayDefaultFullName12[] = {0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName12[] = {0x54, 0x0};
+static const sal_Unicode dayID13[] = {0x77, 0x65, 0x64, 0x0};
+static const sal_Unicode dayDefaultAbbrvName13[] = {0x57, 0x65, 0x64, 0x0};
+static const sal_Unicode dayDefaultFullName13[] = {0x57, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName13[] = {0x57, 0x0};
+static const sal_Unicode dayID14[] = {0x74, 0x68, 0x75, 0x0};
+static const sal_Unicode dayDefaultAbbrvName14[] = {0x54, 0x68, 0x75, 0x0};
+static const sal_Unicode dayDefaultFullName14[] = {0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName14[] = {0x54, 0x0};
+static const sal_Unicode dayID15[] = {0x66, 0x72, 0x69, 0x0};
+static const sal_Unicode dayDefaultAbbrvName15[] = {0x46, 0x72, 0x69, 0x0};
+static const sal_Unicode dayDefaultFullName15[] = {0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName15[] = {0x46, 0x0};
+static const sal_Unicode dayID16[] = {0x73, 0x61, 0x74, 0x0};
+static const sal_Unicode dayDefaultAbbrvName16[] = {0x53, 0x61, 0x74, 0x0};
+static const sal_Unicode dayDefaultFullName16[] = {0x53, 0x68, 0x61, 0x62, 0x62, 0x61, 0x74, 0x0};
+static const sal_Unicode dayDefaultNarrowName16[] = {0x53, 0x0};
+static const sal_Unicode monthID10[] = {0x4e, 0x69, 0x73, 0x73, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultAbbrvName10[] = {0x4e, 0x69, 0x73, 0x73, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultFullName10[] = {0x4e, 0x69, 0x73, 0x73, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultNarrowName10[] = {0x4e, 0x0};
+static const sal_Unicode monthID11[] = {0x49, 0x79, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultAbbrvName11[] = {0x49, 0x79, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultFullName11[] = {0x49, 0x79, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName11[] = {0x49, 0x0};
+static const sal_Unicode monthID12[] = {0x53, 0x69, 0x76, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultAbbrvName12[] = {0x53, 0x69, 0x76, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultFullName12[] = {0x53, 0x69, 0x76, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultNarrowName12[] = {0x53, 0x0};
+static const sal_Unicode monthID13[] = {0x54, 0x61, 0x6d, 0x6d, 0x75, 0x7a, 0x0};
+static const sal_Unicode monthDefaultAbbrvName13[] = {0x54, 0x61, 0x6d, 0x6d, 0x75, 0x7a, 0x0};
+static const sal_Unicode monthDefaultFullName13[] = {0x54, 0x61, 0x6d, 0x6d, 0x75, 0x7a, 0x0};
+static const sal_Unicode monthDefaultNarrowName13[] = {0x54, 0x0};
+static const sal_Unicode monthID14[] = {0x41, 0x76, 0x0};
+static const sal_Unicode monthDefaultAbbrvName14[] = {0x41, 0x76, 0x0};
+static const sal_Unicode monthDefaultFullName14[] = {0x41, 0x76, 0x0};
+static const sal_Unicode monthDefaultNarrowName14[] = {0x41, 0x0};
+static const sal_Unicode monthID15[] = {0x45, 0x6c, 0x75, 0x6c, 0x0};
+static const sal_Unicode monthDefaultAbbrvName15[] = {0x45, 0x6c, 0x75, 0x6c, 0x0};
+static const sal_Unicode monthDefaultFullName15[] = {0x45, 0x6c, 0x75, 0x6c, 0x0};
+static const sal_Unicode monthDefaultNarrowName15[] = {0x45, 0x0};
+static const sal_Unicode monthID16[] = {0x54, 0x69, 0x73, 0x68, 0x72, 0x69, 0x0};
+static const sal_Unicode monthDefaultAbbrvName16[] = {0x54, 0x69, 0x73, 0x68, 0x72, 0x69, 0x0};
+static const sal_Unicode monthDefaultFullName16[] = {0x54, 0x69, 0x73, 0x68, 0x72, 0x69, 0x0};
+static const sal_Unicode monthDefaultNarrowName16[] = {0x54, 0x0};
+static const sal_Unicode monthID17[] = {0x48, 0x65, 0x73, 0x68, 0x76, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultAbbrvName17[] = {0x48, 0x65, 0x73, 0x68, 0x76, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultFullName17[] = {0x48, 0x65, 0x73, 0x68, 0x76, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultNarrowName17[] = {0x48, 0x0};
+static const sal_Unicode monthID18[] = {0x4b, 0x69, 0x73, 0x6c, 0x65, 0x76, 0x0};
+static const sal_Unicode monthDefaultAbbrvName18[] = {0x4b, 0x69, 0x73, 0x6c, 0x65, 0x76, 0x0};
+static const sal_Unicode monthDefaultFullName18[] = {0x4b, 0x69, 0x73, 0x6c, 0x65, 0x76, 0x0};
+static const sal_Unicode monthDefaultNarrowName18[] = {0x4b, 0x0};
+static const sal_Unicode monthID19[] = {0x54, 0x65, 0x76, 0x65, 0x74, 0x0};
+static const sal_Unicode monthDefaultAbbrvName19[] = {0x54, 0x65, 0x76, 0x65, 0x74, 0x0};
+static const sal_Unicode monthDefaultFullName19[] = {0x54, 0x65, 0x76, 0x65, 0x74, 0x0};
+static const sal_Unicode monthDefaultNarrowName19[] = {0x54, 0x0};
+static const sal_Unicode monthID110[] = {0x53, 0x68, 0x65, 0x76, 0x61, 0x74, 0x0};
+static const sal_Unicode monthDefaultAbbrvName110[] = {0x53, 0x68, 0x65, 0x76, 0x61, 0x74, 0x0};
+static const sal_Unicode monthDefaultFullName110[] = {0x53, 0x68, 0x65, 0x76, 0x61, 0x74, 0x0};
+static const sal_Unicode monthDefaultNarrowName110[] = {0x53, 0x0};
+static const sal_Unicode monthID111[] = {0x41, 0x64, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultAbbrvName111[] = {0x41, 0x64, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultFullName111[] = {0x41, 0x64, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName111[] = {0x41, 0x0};
+static const sal_Unicode monthID112[] = {0x76, 0x65, 0x2d, 0x41, 0x64, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultAbbrvName112[] = {0x41, 0x64, 0x61, 0x72, 0x20, 0x42, 0x0};
+static const sal_Unicode monthDefaultFullName112[] = {0x41, 0x64, 0x61, 0x72, 0x20, 0x42, 0x0};
+static const sal_Unicode monthDefaultNarrowName112[] = {0x41, 0x0};
+static const sal_Unicode genitiveMonthID10[] = {0x4e, 0x69, 0x73, 0x73, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName10[] = {0x4e, 0x69, 0x73, 0x73, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName10[] = {0x4e, 0x69, 0x73, 0x73, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName10[] = {0x4e, 0x0};
+static const sal_Unicode genitiveMonthID11[] = {0x49, 0x79, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName11[] = {0x49, 0x79, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName11[] = {0x49, 0x79, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName11[] = {0x49, 0x0};
+static const sal_Unicode genitiveMonthID12[] = {0x53, 0x69, 0x76, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName12[] = {0x53, 0x69, 0x76, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName12[] = {0x53, 0x69, 0x76, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName12[] = {0x53, 0x0};
+static const sal_Unicode genitiveMonthID13[] = {0x54, 0x61, 0x6d, 0x6d, 0x75, 0x7a, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName13[] = {0x54, 0x61, 0x6d, 0x6d, 0x75, 0x7a, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName13[] = {0x54, 0x61, 0x6d, 0x6d, 0x75, 0x7a, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName13[] = {0x54, 0x0};
+static const sal_Unicode genitiveMonthID14[] = {0x41, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName14[] = {0x41, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName14[] = {0x41, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName14[] = {0x41, 0x0};
+static const sal_Unicode genitiveMonthID15[] = {0x45, 0x6c, 0x75, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName15[] = {0x45, 0x6c, 0x75, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName15[] = {0x45, 0x6c, 0x75, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName15[] = {0x45, 0x0};
+static const sal_Unicode genitiveMonthID16[] = {0x54, 0x69, 0x73, 0x68, 0x72, 0x69, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName16[] = {0x54, 0x69, 0x73, 0x68, 0x72, 0x69, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName16[] = {0x54, 0x69, 0x73, 0x68, 0x72, 0x69, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName16[] = {0x54, 0x0};
+static const sal_Unicode genitiveMonthID17[] = {0x48, 0x65, 0x73, 0x68, 0x76, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName17[] = {0x48, 0x65, 0x73, 0x68, 0x76, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName17[] = {0x48, 0x65, 0x73, 0x68, 0x76, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName17[] = {0x48, 0x0};
+static const sal_Unicode genitiveMonthID18[] = {0x4b, 0x69, 0x73, 0x6c, 0x65, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName18[] = {0x4b, 0x69, 0x73, 0x6c, 0x65, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName18[] = {0x4b, 0x69, 0x73, 0x6c, 0x65, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName18[] = {0x4b, 0x0};
+static const sal_Unicode genitiveMonthID19[] = {0x54, 0x65, 0x76, 0x65, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName19[] = {0x54, 0x65, 0x76, 0x65, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName19[] = {0x54, 0x65, 0x76, 0x65, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName19[] = {0x54, 0x0};
+static const sal_Unicode genitiveMonthID110[] = {0x53, 0x68, 0x65, 0x76, 0x61, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName110[] = {0x53, 0x68, 0x65, 0x76, 0x61, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName110[] = {0x53, 0x68, 0x65, 0x76, 0x61, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName110[] = {0x53, 0x0};
+static const sal_Unicode genitiveMonthID111[] = {0x41, 0x64, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName111[] = {0x41, 0x64, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName111[] = {0x41, 0x64, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName111[] = {0x41, 0x0};
+static const sal_Unicode genitiveMonthID112[] = {0x76, 0x65, 0x2d, 0x41, 0x64, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName112[] = {0x41, 0x64, 0x61, 0x72, 0x20, 0x42, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName112[] = {0x41, 0x64, 0x61, 0x72, 0x20, 0x42, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName112[] = {0x41, 0x0};
+static const sal_Unicode partitiveMonthID10[] = {0x4e, 0x69, 0x73, 0x73, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName10[] = {0x4e, 0x69, 0x73, 0x73, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName10[] = {0x4e, 0x69, 0x73, 0x73, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName10[] = {0x4e, 0x0};
+static const sal_Unicode partitiveMonthID11[] = {0x49, 0x79, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName11[] = {0x49, 0x79, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName11[] = {0x49, 0x79, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName11[] = {0x49, 0x0};
+static const sal_Unicode partitiveMonthID12[] = {0x53, 0x69, 0x76, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName12[] = {0x53, 0x69, 0x76, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName12[] = {0x53, 0x69, 0x76, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName12[] = {0x53, 0x0};
+static const sal_Unicode partitiveMonthID13[] = {0x54, 0x61, 0x6d, 0x6d, 0x75, 0x7a, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName13[] = {0x54, 0x61, 0x6d, 0x6d, 0x75, 0x7a, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName13[] = {0x54, 0x61, 0x6d, 0x6d, 0x75, 0x7a, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName13[] = {0x54, 0x0};
+static const sal_Unicode partitiveMonthID14[] = {0x41, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName14[] = {0x41, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName14[] = {0x41, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName14[] = {0x41, 0x0};
+static const sal_Unicode partitiveMonthID15[] = {0x45, 0x6c, 0x75, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName15[] = {0x45, 0x6c, 0x75, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName15[] = {0x45, 0x6c, 0x75, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName15[] = {0x45, 0x0};
+static const sal_Unicode partitiveMonthID16[] = {0x54, 0x69, 0x73, 0x68, 0x72, 0x69, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName16[] = {0x54, 0x69, 0x73, 0x68, 0x72, 0x69, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName16[] = {0x54, 0x69, 0x73, 0x68, 0x72, 0x69, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName16[] = {0x54, 0x0};
+static const sal_Unicode partitiveMonthID17[] = {0x48, 0x65, 0x73, 0x68, 0x76, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName17[] = {0x48, 0x65, 0x73, 0x68, 0x76, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName17[] = {0x48, 0x65, 0x73, 0x68, 0x76, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName17[] = {0x48, 0x0};
+static const sal_Unicode partitiveMonthID18[] = {0x4b, 0x69, 0x73, 0x6c, 0x65, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName18[] = {0x4b, 0x69, 0x73, 0x6c, 0x65, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName18[] = {0x4b, 0x69, 0x73, 0x6c, 0x65, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName18[] = {0x4b, 0x0};
+static const sal_Unicode partitiveMonthID19[] = {0x54, 0x65, 0x76, 0x65, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName19[] = {0x54, 0x65, 0x76, 0x65, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName19[] = {0x54, 0x65, 0x76, 0x65, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName19[] = {0x54, 0x0};
+static const sal_Unicode partitiveMonthID110[] = {0x53, 0x68, 0x65, 0x76, 0x61, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName110[] = {0x53, 0x68, 0x65, 0x76, 0x61, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName110[] = {0x53, 0x68, 0x65, 0x76, 0x61, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName110[] = {0x53, 0x0};
+static const sal_Unicode partitiveMonthID111[] = {0x41, 0x64, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName111[] = {0x41, 0x64, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName111[] = {0x41, 0x64, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName111[] = {0x41, 0x0};
+static const sal_Unicode partitiveMonthID112[] = {0x76, 0x65, 0x2d, 0x41, 0x64, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName112[] = {0x41, 0x64, 0x61, 0x72, 0x20, 0x42, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName112[] = {0x41, 0x64, 0x61, 0x72, 0x20, 0x42, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName112[] = {0x41, 0x0};
+static const sal_Unicode eraID10[] = {0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x0};
+
+static const sal_Unicode eraDefaultAbbrvName10[] = {0x42, 0x43, 0x45, 0x0};
+static const sal_Unicode eraDefaultFullName10[] = {0x42, 0x43, 0x45, 0x0};
+static const sal_Unicode eraID11[] = {0x61, 0x66, 0x74, 0x65, 0x72, 0x0};
+
+static const sal_Unicode eraDefaultAbbrvName11[] = {0x43, 0x45, 0x0};
+static const sal_Unicode eraDefaultFullName11[] = {0x43, 0x45, 0x0};
+static const sal_Unicode startDayOfWeek1[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode minimalDaysInFirstWeek1[] = {1};
+static const sal_Int16 calendarsCount = 2;
+
+static const sal_Unicode nbOfDays[] = {7, 7};
+static const sal_Unicode nbOfMonths[] = {12, 13};
+static const sal_Unicode nbOfGenitiveMonths[] = {12, 13};
+static const sal_Unicode nbOfPartitiveMonths[] = {12, 13};
+static const sal_Unicode nbOfEras[] = {2, 2};
+static const sal_Unicode* calendars[] = {
+ nbOfDays,
+ nbOfMonths,
+ nbOfGenitiveMonths,
+ nbOfPartitiveMonths,
+ nbOfEras,
+ calendarID0,
+ defaultCalendar0,
+ dayID00,
+ dayDefaultAbbrvName00,
+ dayDefaultFullName00,
+ dayDefaultNarrowName00,
+ dayID01,
+ dayDefaultAbbrvName01,
+ dayDefaultFullName01,
+ dayDefaultNarrowName01,
+ dayID02,
+ dayDefaultAbbrvName02,
+ dayDefaultFullName02,
+ dayDefaultNarrowName02,
+ dayID03,
+ dayDefaultAbbrvName03,
+ dayDefaultFullName03,
+ dayDefaultNarrowName03,
+ dayID04,
+ dayDefaultAbbrvName04,
+ dayDefaultFullName04,
+ dayDefaultNarrowName04,
+ dayID05,
+ dayDefaultAbbrvName05,
+ dayDefaultFullName05,
+ dayDefaultNarrowName05,
+ dayID06,
+ dayDefaultAbbrvName06,
+ dayDefaultFullName06,
+ dayDefaultNarrowName06,
+ monthID00,
+ monthDefaultAbbrvName00,
+ monthDefaultFullName00,
+ monthDefaultNarrowName00,
+ monthID01,
+ monthDefaultAbbrvName01,
+ monthDefaultFullName01,
+ monthDefaultNarrowName01,
+ monthID02,
+ monthDefaultAbbrvName02,
+ monthDefaultFullName02,
+ monthDefaultNarrowName02,
+ monthID03,
+ monthDefaultAbbrvName03,
+ monthDefaultFullName03,
+ monthDefaultNarrowName03,
+ monthID04,
+ monthDefaultAbbrvName04,
+ monthDefaultFullName04,
+ monthDefaultNarrowName04,
+ monthID05,
+ monthDefaultAbbrvName05,
+ monthDefaultFullName05,
+ monthDefaultNarrowName05,
+ monthID06,
+ monthDefaultAbbrvName06,
+ monthDefaultFullName06,
+ monthDefaultNarrowName06,
+ monthID07,
+ monthDefaultAbbrvName07,
+ monthDefaultFullName07,
+ monthDefaultNarrowName07,
+ monthID08,
+ monthDefaultAbbrvName08,
+ monthDefaultFullName08,
+ monthDefaultNarrowName08,
+ monthID09,
+ monthDefaultAbbrvName09,
+ monthDefaultFullName09,
+ monthDefaultNarrowName09,
+ monthID010,
+ monthDefaultAbbrvName010,
+ monthDefaultFullName010,
+ monthDefaultNarrowName010,
+ monthID011,
+ monthDefaultAbbrvName011,
+ monthDefaultFullName011,
+ monthDefaultNarrowName011,
+ genitiveMonthID00,
+ genitiveMonthDefaultAbbrvName00,
+ genitiveMonthDefaultFullName00,
+ genitiveMonthDefaultNarrowName00,
+ genitiveMonthID01,
+ genitiveMonthDefaultAbbrvName01,
+ genitiveMonthDefaultFullName01,
+ genitiveMonthDefaultNarrowName01,
+ genitiveMonthID02,
+ genitiveMonthDefaultAbbrvName02,
+ genitiveMonthDefaultFullName02,
+ genitiveMonthDefaultNarrowName02,
+ genitiveMonthID03,
+ genitiveMonthDefaultAbbrvName03,
+ genitiveMonthDefaultFullName03,
+ genitiveMonthDefaultNarrowName03,
+ genitiveMonthID04,
+ genitiveMonthDefaultAbbrvName04,
+ genitiveMonthDefaultFullName04,
+ genitiveMonthDefaultNarrowName04,
+ genitiveMonthID05,
+ genitiveMonthDefaultAbbrvName05,
+ genitiveMonthDefaultFullName05,
+ genitiveMonthDefaultNarrowName05,
+ genitiveMonthID06,
+ genitiveMonthDefaultAbbrvName06,
+ genitiveMonthDefaultFullName06,
+ genitiveMonthDefaultNarrowName06,
+ genitiveMonthID07,
+ genitiveMonthDefaultAbbrvName07,
+ genitiveMonthDefaultFullName07,
+ genitiveMonthDefaultNarrowName07,
+ genitiveMonthID08,
+ genitiveMonthDefaultAbbrvName08,
+ genitiveMonthDefaultFullName08,
+ genitiveMonthDefaultNarrowName08,
+ genitiveMonthID09,
+ genitiveMonthDefaultAbbrvName09,
+ genitiveMonthDefaultFullName09,
+ genitiveMonthDefaultNarrowName09,
+ genitiveMonthID010,
+ genitiveMonthDefaultAbbrvName010,
+ genitiveMonthDefaultFullName010,
+ genitiveMonthDefaultNarrowName010,
+ genitiveMonthID011,
+ genitiveMonthDefaultAbbrvName011,
+ genitiveMonthDefaultFullName011,
+ genitiveMonthDefaultNarrowName011,
+ partitiveMonthID00,
+ partitiveMonthDefaultAbbrvName00,
+ partitiveMonthDefaultFullName00,
+ partitiveMonthDefaultNarrowName00,
+ partitiveMonthID01,
+ partitiveMonthDefaultAbbrvName01,
+ partitiveMonthDefaultFullName01,
+ partitiveMonthDefaultNarrowName01,
+ partitiveMonthID02,
+ partitiveMonthDefaultAbbrvName02,
+ partitiveMonthDefaultFullName02,
+ partitiveMonthDefaultNarrowName02,
+ partitiveMonthID03,
+ partitiveMonthDefaultAbbrvName03,
+ partitiveMonthDefaultFullName03,
+ partitiveMonthDefaultNarrowName03,
+ partitiveMonthID04,
+ partitiveMonthDefaultAbbrvName04,
+ partitiveMonthDefaultFullName04,
+ partitiveMonthDefaultNarrowName04,
+ partitiveMonthID05,
+ partitiveMonthDefaultAbbrvName05,
+ partitiveMonthDefaultFullName05,
+ partitiveMonthDefaultNarrowName05,
+ partitiveMonthID06,
+ partitiveMonthDefaultAbbrvName06,
+ partitiveMonthDefaultFullName06,
+ partitiveMonthDefaultNarrowName06,
+ partitiveMonthID07,
+ partitiveMonthDefaultAbbrvName07,
+ partitiveMonthDefaultFullName07,
+ partitiveMonthDefaultNarrowName07,
+ partitiveMonthID08,
+ partitiveMonthDefaultAbbrvName08,
+ partitiveMonthDefaultFullName08,
+ partitiveMonthDefaultNarrowName08,
+ partitiveMonthID09,
+ partitiveMonthDefaultAbbrvName09,
+ partitiveMonthDefaultFullName09,
+ partitiveMonthDefaultNarrowName09,
+ partitiveMonthID010,
+ partitiveMonthDefaultAbbrvName010,
+ partitiveMonthDefaultFullName010,
+ partitiveMonthDefaultNarrowName010,
+ partitiveMonthID011,
+ partitiveMonthDefaultAbbrvName011,
+ partitiveMonthDefaultFullName011,
+ partitiveMonthDefaultNarrowName011,
+ eraID00,
+ eraDefaultAbbrvName00,
+ eraDefaultFullName00,
+ eraID01,
+ eraDefaultAbbrvName01,
+ eraDefaultFullName01,
+ startDayOfWeek0,
+ minimalDaysInFirstWeek0,
+ calendarID1,
+ defaultCalendar1,
+ dayID10,
+ dayDefaultAbbrvName10,
+ dayDefaultFullName10,
+ dayDefaultNarrowName10,
+ dayID11,
+ dayDefaultAbbrvName11,
+ dayDefaultFullName11,
+ dayDefaultNarrowName11,
+ dayID12,
+ dayDefaultAbbrvName12,
+ dayDefaultFullName12,
+ dayDefaultNarrowName12,
+ dayID13,
+ dayDefaultAbbrvName13,
+ dayDefaultFullName13,
+ dayDefaultNarrowName13,
+ dayID14,
+ dayDefaultAbbrvName14,
+ dayDefaultFullName14,
+ dayDefaultNarrowName14,
+ dayID15,
+ dayDefaultAbbrvName15,
+ dayDefaultFullName15,
+ dayDefaultNarrowName15,
+ dayID16,
+ dayDefaultAbbrvName16,
+ dayDefaultFullName16,
+ dayDefaultNarrowName16,
+ monthID10,
+ monthDefaultAbbrvName10,
+ monthDefaultFullName10,
+ monthDefaultNarrowName10,
+ monthID11,
+ monthDefaultAbbrvName11,
+ monthDefaultFullName11,
+ monthDefaultNarrowName11,
+ monthID12,
+ monthDefaultAbbrvName12,
+ monthDefaultFullName12,
+ monthDefaultNarrowName12,
+ monthID13,
+ monthDefaultAbbrvName13,
+ monthDefaultFullName13,
+ monthDefaultNarrowName13,
+ monthID14,
+ monthDefaultAbbrvName14,
+ monthDefaultFullName14,
+ monthDefaultNarrowName14,
+ monthID15,
+ monthDefaultAbbrvName15,
+ monthDefaultFullName15,
+ monthDefaultNarrowName15,
+ monthID16,
+ monthDefaultAbbrvName16,
+ monthDefaultFullName16,
+ monthDefaultNarrowName16,
+ monthID17,
+ monthDefaultAbbrvName17,
+ monthDefaultFullName17,
+ monthDefaultNarrowName17,
+ monthID18,
+ monthDefaultAbbrvName18,
+ monthDefaultFullName18,
+ monthDefaultNarrowName18,
+ monthID19,
+ monthDefaultAbbrvName19,
+ monthDefaultFullName19,
+ monthDefaultNarrowName19,
+ monthID110,
+ monthDefaultAbbrvName110,
+ monthDefaultFullName110,
+ monthDefaultNarrowName110,
+ monthID111,
+ monthDefaultAbbrvName111,
+ monthDefaultFullName111,
+ monthDefaultNarrowName111,
+ monthID112,
+ monthDefaultAbbrvName112,
+ monthDefaultFullName112,
+ monthDefaultNarrowName112,
+ genitiveMonthID10,
+ genitiveMonthDefaultAbbrvName10,
+ genitiveMonthDefaultFullName10,
+ genitiveMonthDefaultNarrowName10,
+ genitiveMonthID11,
+ genitiveMonthDefaultAbbrvName11,
+ genitiveMonthDefaultFullName11,
+ genitiveMonthDefaultNarrowName11,
+ genitiveMonthID12,
+ genitiveMonthDefaultAbbrvName12,
+ genitiveMonthDefaultFullName12,
+ genitiveMonthDefaultNarrowName12,
+ genitiveMonthID13,
+ genitiveMonthDefaultAbbrvName13,
+ genitiveMonthDefaultFullName13,
+ genitiveMonthDefaultNarrowName13,
+ genitiveMonthID14,
+ genitiveMonthDefaultAbbrvName14,
+ genitiveMonthDefaultFullName14,
+ genitiveMonthDefaultNarrowName14,
+ genitiveMonthID15,
+ genitiveMonthDefaultAbbrvName15,
+ genitiveMonthDefaultFullName15,
+ genitiveMonthDefaultNarrowName15,
+ genitiveMonthID16,
+ genitiveMonthDefaultAbbrvName16,
+ genitiveMonthDefaultFullName16,
+ genitiveMonthDefaultNarrowName16,
+ genitiveMonthID17,
+ genitiveMonthDefaultAbbrvName17,
+ genitiveMonthDefaultFullName17,
+ genitiveMonthDefaultNarrowName17,
+ genitiveMonthID18,
+ genitiveMonthDefaultAbbrvName18,
+ genitiveMonthDefaultFullName18,
+ genitiveMonthDefaultNarrowName18,
+ genitiveMonthID19,
+ genitiveMonthDefaultAbbrvName19,
+ genitiveMonthDefaultFullName19,
+ genitiveMonthDefaultNarrowName19,
+ genitiveMonthID110,
+ genitiveMonthDefaultAbbrvName110,
+ genitiveMonthDefaultFullName110,
+ genitiveMonthDefaultNarrowName110,
+ genitiveMonthID111,
+ genitiveMonthDefaultAbbrvName111,
+ genitiveMonthDefaultFullName111,
+ genitiveMonthDefaultNarrowName111,
+ genitiveMonthID112,
+ genitiveMonthDefaultAbbrvName112,
+ genitiveMonthDefaultFullName112,
+ genitiveMonthDefaultNarrowName112,
+ partitiveMonthID10,
+ partitiveMonthDefaultAbbrvName10,
+ partitiveMonthDefaultFullName10,
+ partitiveMonthDefaultNarrowName10,
+ partitiveMonthID11,
+ partitiveMonthDefaultAbbrvName11,
+ partitiveMonthDefaultFullName11,
+ partitiveMonthDefaultNarrowName11,
+ partitiveMonthID12,
+ partitiveMonthDefaultAbbrvName12,
+ partitiveMonthDefaultFullName12,
+ partitiveMonthDefaultNarrowName12,
+ partitiveMonthID13,
+ partitiveMonthDefaultAbbrvName13,
+ partitiveMonthDefaultFullName13,
+ partitiveMonthDefaultNarrowName13,
+ partitiveMonthID14,
+ partitiveMonthDefaultAbbrvName14,
+ partitiveMonthDefaultFullName14,
+ partitiveMonthDefaultNarrowName14,
+ partitiveMonthID15,
+ partitiveMonthDefaultAbbrvName15,
+ partitiveMonthDefaultFullName15,
+ partitiveMonthDefaultNarrowName15,
+ partitiveMonthID16,
+ partitiveMonthDefaultAbbrvName16,
+ partitiveMonthDefaultFullName16,
+ partitiveMonthDefaultNarrowName16,
+ partitiveMonthID17,
+ partitiveMonthDefaultAbbrvName17,
+ partitiveMonthDefaultFullName17,
+ partitiveMonthDefaultNarrowName17,
+ partitiveMonthID18,
+ partitiveMonthDefaultAbbrvName18,
+ partitiveMonthDefaultFullName18,
+ partitiveMonthDefaultNarrowName18,
+ partitiveMonthID19,
+ partitiveMonthDefaultAbbrvName19,
+ partitiveMonthDefaultFullName19,
+ partitiveMonthDefaultNarrowName19,
+ partitiveMonthID110,
+ partitiveMonthDefaultAbbrvName110,
+ partitiveMonthDefaultFullName110,
+ partitiveMonthDefaultNarrowName110,
+ partitiveMonthID111,
+ partitiveMonthDefaultAbbrvName111,
+ partitiveMonthDefaultFullName111,
+ partitiveMonthDefaultNarrowName111,
+ partitiveMonthID112,
+ partitiveMonthDefaultAbbrvName112,
+ partitiveMonthDefaultFullName112,
+ partitiveMonthDefaultNarrowName112,
+ eraID10,
+ eraDefaultAbbrvName10,
+ eraDefaultFullName10,
+ eraID11,
+ eraDefaultAbbrvName11,
+ eraDefaultFullName11,
+ startDayOfWeek1,
+ minimalDaysInFirstWeek1,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_US(sal_Int16& count)
+{
+ count = calendarsCount;
+ return (sal_Unicode**)calendars;
+}
+static const sal_Unicode defaultCurrency0[] = {1};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1};
+static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0};
+static const sal_Unicode currencyID0[] = {0x55, 0x53, 0x44, 0x0};
+static const sal_Unicode currencySymbol0[] = {0x24, 0x0};
+static const sal_Unicode bankSymbol0[] = {0x55, 0x53, 0x44, 0x0};
+static const sal_Unicode currencyName0[] = {0x55, 0x53, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x0};
+static const sal_Unicode currencyDecimalPlaces0[] = {2};
+
+static const sal_Int16 currencyCount = 1;
+
+static const sal_Unicode* currencies[] = {
+ currencyID0,
+ currencySymbol0,
+ bankSymbol0,
+ currencyName0,
+ defaultCurrency0,
+ defaultCurrencyUsedInCompatibleFormatCodes0,
+ currencyDecimalPlaces0,
+ defaultCurrencyLegacyOnly0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_US(sal_Int16& count)
+{
+ count = currencyCount;
+ return (sal_Unicode**)currencies;
+}
+static const sal_Unicode Transliteration0[] = {0x53, 0x45, 0x4e, 0x54, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x0};
+static const sal_Unicode Transliteration1[] = {0x4c, 0x4f, 0x57, 0x45, 0x52, 0x43, 0x41, 0x53, 0x45, 0x5f, 0x55, 0x50, 0x50, 0x45, 0x52, 0x43, 0x41, 0x53, 0x45, 0x0};
+static const sal_Unicode Transliteration2[] = {0x55, 0x50, 0x50, 0x45, 0x52, 0x43, 0x41, 0x53, 0x45, 0x5f, 0x4c, 0x4f, 0x57, 0x45, 0x52, 0x43, 0x41, 0x53, 0x45, 0x0};
+static const sal_Unicode Transliteration3[] = {0x54, 0x49, 0x54, 0x4c, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x0};
+static const sal_Unicode Transliteration4[] = {0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x0};
+static const sal_Unicode Transliteration5[] = {0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x0};
+static const sal_Int16 nbOfTransliterations = 6;
+
+
+static const sal_Unicode* LCTransliterationsArray[] = {
+ Transliteration0,
+ Transliteration1,
+ Transliteration2,
+ Transliteration3,
+ Transliteration4,
+ Transliteration5,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count)
+{
+ count = nbOfTransliterations;
+ return (sal_Unicode**)LCTransliterationsArray;
+}
+static const sal_Unicode ReservedWord0[] = {0x74, 0x72, 0x75, 0x65, 0x0};
+static const sal_Unicode ReservedWord1[] = {0x66, 0x61, 0x6c, 0x73, 0x65, 0x0};
+static const sal_Unicode ReservedWord2[] = {0x31, 0x73, 0x74, 0x20, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x0};
+static const sal_Unicode ReservedWord3[] = {0x32, 0x6e, 0x64, 0x20, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x0};
+static const sal_Unicode ReservedWord4[] = {0x33, 0x72, 0x64, 0x20, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x0};
+static const sal_Unicode ReservedWord5[] = {0x34, 0x74, 0x68, 0x20, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x0};
+static const sal_Unicode ReservedWord6[] = {0x61, 0x62, 0x6f, 0x76, 0x65, 0x0};
+static const sal_Unicode ReservedWord7[] = {0x62, 0x65, 0x6c, 0x6f, 0x77, 0x0};
+static const sal_Unicode ReservedWord8[] = {0x51, 0x31, 0x0};
+static const sal_Unicode ReservedWord9[] = {0x51, 0x32, 0x0};
+static const sal_Unicode ReservedWord10[] = {0x51, 0x33, 0x0};
+static const sal_Unicode ReservedWord11[] = {0x51, 0x34, 0x0};
+static const sal_Int16 nbOfReservedWords = 12;
+
+
+static const sal_Unicode* LCReservedWordsArray[] = {
+ ReservedWord0,
+ ReservedWord1,
+ ReservedWord2,
+ ReservedWord3,
+ ReservedWord4,
+ ReservedWord5,
+ ReservedWord6,
+ ReservedWord7,
+ ReservedWord8,
+ ReservedWord9,
+ ReservedWord10,
+ ReservedWord11,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count)
+{
+ count = nbOfReservedWords;
+ return (sal_Unicode**)LCReservedWordsArray;
+}
+static const sal_Unicode forbiddenBegin[] = {0x0};
+static const sal_Unicode forbiddenEnd[] = {0x0};
+static const sal_Unicode hangingChars[] = {0x0};
+
+static const sal_Unicode* LCForbiddenCharactersArray[] = {
+ forbiddenBegin,
+ forbiddenEnd,
+ hangingChars
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count)
+{
+ count = 3;
+ return (sal_Unicode**)LCForbiddenCharactersArray;
+}
+static const sal_Unicode EditMode[] = {0x0};
+static const sal_Unicode DictionaryMode[] = {0x0};
+static const sal_Unicode WordCountMode[] = {0x0};
+static const sal_Unicode CharacterMode[] = {0x0};
+static const sal_Unicode LineMode[] = {0x0};
+
+static const sal_Unicode* LCBreakIteratorRulesArray[] = {
+ EditMode,
+ DictionaryMode,
+ WordCountMode,
+ CharacterMode,
+ LineMode
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count)
+{
+ count = 5;
+ return (sal_Unicode**)LCBreakIteratorRulesArray;
+}
+// ---> ContinuousNumbering
+static const sal_Unicode continuousPrefix0[] = {0x20, 0x0};
+static const sal_Unicode continuousNumType0[] = {0x34, 0x0};
+static const sal_Unicode continuousSuffix0[] = {0x29, 0x0};
+static const sal_Unicode continuousTransliteration0[] = {0x0};
+static const sal_Unicode continuousNatNum0[] = {0x0};
+static const sal_Unicode continuousPrefix1[] = {0x20, 0x0};
+static const sal_Unicode continuousNumType1[] = {0x34, 0x0};
+static const sal_Unicode continuousSuffix1[] = {0x2e, 0x0};
+static const sal_Unicode continuousTransliteration1[] = {0x0};
+static const sal_Unicode continuousNatNum1[] = {0x0};
+static const sal_Unicode continuousPrefix2[] = {0x28, 0x0};
+static const sal_Unicode continuousNumType2[] = {0x34, 0x0};
+static const sal_Unicode continuousSuffix2[] = {0x29, 0x0};
+static const sal_Unicode continuousTransliteration2[] = {0x0};
+static const sal_Unicode continuousNatNum2[] = {0x0};
+static const sal_Unicode continuousPrefix3[] = {0x20, 0x0};
+static const sal_Unicode continuousNumType3[] = {0x32, 0x0};
+static const sal_Unicode continuousSuffix3[] = {0x2e, 0x0};
+static const sal_Unicode continuousTransliteration3[] = {0x0};
+static const sal_Unicode continuousNatNum3[] = {0x0};
+static const sal_Unicode continuousPrefix4[] = {0x20, 0x0};
+static const sal_Unicode continuousNumType4[] = {0x30, 0x0};
+static const sal_Unicode continuousSuffix4[] = {0x29, 0x0};
+static const sal_Unicode continuousTransliteration4[] = {0x0};
+static const sal_Unicode continuousNatNum4[] = {0x0};
+static const sal_Unicode continuousPrefix5[] = {0x20, 0x0};
+static const sal_Unicode continuousNumType5[] = {0x31, 0x0};
+static const sal_Unicode continuousSuffix5[] = {0x29, 0x0};
+static const sal_Unicode continuousTransliteration5[] = {0x0};
+static const sal_Unicode continuousNatNum5[] = {0x0};
+static const sal_Unicode continuousPrefix6[] = {0x28, 0x0};
+static const sal_Unicode continuousNumType6[] = {0x31, 0x0};
+static const sal_Unicode continuousSuffix6[] = {0x29, 0x0};
+static const sal_Unicode continuousTransliteration6[] = {0x0};
+static const sal_Unicode continuousNatNum6[] = {0x0};
+static const sal_Unicode continuousPrefix7[] = {0x20, 0x0};
+static const sal_Unicode continuousNumType7[] = {0x33, 0x0};
+static const sal_Unicode continuousSuffix7[] = {0x2e, 0x0};
+static const sal_Unicode continuousTransliteration7[] = {0x0};
+static const sal_Unicode continuousNatNum7[] = {0x0};
+static const sal_Int16 continuousNbOfStyles = 8;
+
+static const sal_Int16 continuousNbOfAttributesPerStyle = 5;
+
+
+static const sal_Unicode* continuousStyle0[] = {
+ continuousPrefix0,
+ continuousNumType0,
+ continuousSuffix0,
+ continuousTransliteration0,
+ continuousNatNum0,
+ 0
+};
+
+
+static const sal_Unicode* continuousStyle1[] = {
+ continuousPrefix1,
+ continuousNumType1,
+ continuousSuffix1,
+ continuousTransliteration1,
+ continuousNatNum1,
+ 0
+};
+
+
+static const sal_Unicode* continuousStyle2[] = {
+ continuousPrefix2,
+ continuousNumType2,
+ continuousSuffix2,
+ continuousTransliteration2,
+ continuousNatNum2,
+ 0
+};
+
+
+static const sal_Unicode* continuousStyle3[] = {
+ continuousPrefix3,
+ continuousNumType3,
+ continuousSuffix3,
+ continuousTransliteration3,
+ continuousNatNum3,
+ 0
+};
+
+
+static const sal_Unicode* continuousStyle4[] = {
+ continuousPrefix4,
+ continuousNumType4,
+ continuousSuffix4,
+ continuousTransliteration4,
+ continuousNatNum4,
+ 0
+};
+
+
+static const sal_Unicode* continuousStyle5[] = {
+ continuousPrefix5,
+ continuousNumType5,
+ continuousSuffix5,
+ continuousTransliteration5,
+ continuousNatNum5,
+ 0
+};
+
+
+static const sal_Unicode* continuousStyle6[] = {
+ continuousPrefix6,
+ continuousNumType6,
+ continuousSuffix6,
+ continuousTransliteration6,
+ continuousNatNum6,
+ 0
+};
+
+
+static const sal_Unicode* continuousStyle7[] = {
+ continuousPrefix7,
+ continuousNumType7,
+ continuousSuffix7,
+ continuousTransliteration7,
+ continuousNatNum7,
+ 0
+};
+
+
+static const sal_Unicode** LCContinuousNumberingLevelsArray[] = {
+ continuousStyle0,
+ continuousStyle1,
+ continuousStyle2,
+ continuousStyle3,
+ continuousStyle4,
+ continuousStyle5,
+ continuousStyle6,
+ continuousStyle7,
+ 0
+};
+
+SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US( sal_Int16& nStyles, sal_Int16& nAttributes )
+{
+ nStyles = continuousNbOfStyles;
+ nAttributes = continuousNbOfAttributesPerStyle;
+ return LCContinuousNumberingLevelsArray;
+}
+// ---> OutlineNumbering
+static const sal_Unicode outlinePrefix00[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType00[] = {0x34, 0x0};
+static const sal_Unicode outlineSuffix00[] = {0x2e, 0x0};
+static const sal_Unicode outlineBulletChar00[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName00[] = {0x0};
+static const sal_Unicode outlineParentNumbering00[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin00[] = {0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance00[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset00[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration00[] = {0x0};
+static const sal_Unicode outlineNatNum00[] = {0x0};
+static const sal_Unicode outlinePrefix01[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType01[] = {0x34, 0x0};
+static const sal_Unicode outlineSuffix01[] = {0x2e, 0x0};
+static const sal_Unicode outlineBulletChar01[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName01[] = {0x0};
+static const sal_Unicode outlineParentNumbering01[] = {0x31, 0x0};
+static const sal_Unicode outlineLeftMargin01[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance01[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset01[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration01[] = {0x0};
+static const sal_Unicode outlineNatNum01[] = {0x0};
+static const sal_Unicode outlinePrefix02[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType02[] = {0x31, 0x0};
+static const sal_Unicode outlineSuffix02[] = {0x29, 0x0};
+static const sal_Unicode outlineBulletChar02[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName02[] = {0x0};
+static const sal_Unicode outlineParentNumbering02[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin02[] = {0x31, 0x30, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance02[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset02[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration02[] = {0x0};
+static const sal_Unicode outlineNatNum02[] = {0x0};
+static const sal_Unicode outlinePrefix03[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType03[] = {0x36, 0x0};
+static const sal_Unicode outlineSuffix03[] = {0x20, 0x0};
+static const sal_Unicode outlineBulletChar03[] = {0x32, 0x30, 0x32, 0x32, 0x0};
+static const sal_Unicode outlineBulletFontName03[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0};
+static const sal_Unicode outlineParentNumbering03[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin03[] = {0x31, 0x35, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance03[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset03[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration03[] = {0x0};
+static const sal_Unicode outlineNatNum03[] = {0x0};
+static const sal_Unicode outlinePrefix04[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType04[] = {0x36, 0x0};
+static const sal_Unicode outlineSuffix04[] = {0x20, 0x0};
+static const sal_Unicode outlineBulletChar04[] = {0x32, 0x30, 0x32, 0x32, 0x0};
+static const sal_Unicode outlineBulletFontName04[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0};
+static const sal_Unicode outlineParentNumbering04[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin04[] = {0x32, 0x30, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance04[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset04[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration04[] = {0x0};
+static const sal_Unicode outlineNatNum04[] = {0x0};
+static const sal_Unicode outlinePrefix10[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType10[] = {0x34, 0x0};
+static const sal_Unicode outlineSuffix10[] = {0x2e, 0x0};
+static const sal_Unicode outlineBulletChar10[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName10[] = {0x0};
+static const sal_Unicode outlineParentNumbering10[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin10[] = {0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance10[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset10[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration10[] = {0x0};
+static const sal_Unicode outlineNatNum10[] = {0x0};
+static const sal_Unicode outlinePrefix11[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType11[] = {0x31, 0x0};
+static const sal_Unicode outlineSuffix11[] = {0x29, 0x0};
+static const sal_Unicode outlineBulletChar11[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName11[] = {0x0};
+static const sal_Unicode outlineParentNumbering11[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin11[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance11[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset11[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration11[] = {0x0};
+static const sal_Unicode outlineNatNum11[] = {0x0};
+static const sal_Unicode outlinePrefix12[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType12[] = {0x36, 0x0};
+static const sal_Unicode outlineSuffix12[] = {0x20, 0x0};
+static const sal_Unicode outlineBulletChar12[] = {0x32, 0x30, 0x32, 0x32, 0x0};
+static const sal_Unicode outlineBulletFontName12[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0};
+static const sal_Unicode outlineParentNumbering12[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin12[] = {0x31, 0x30, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance12[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset12[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration12[] = {0x0};
+static const sal_Unicode outlineNatNum12[] = {0x0};
+static const sal_Unicode outlinePrefix13[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType13[] = {0x36, 0x0};
+static const sal_Unicode outlineSuffix13[] = {0x20, 0x0};
+static const sal_Unicode outlineBulletChar13[] = {0x32, 0x30, 0x32, 0x32, 0x0};
+static const sal_Unicode outlineBulletFontName13[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0};
+static const sal_Unicode outlineParentNumbering13[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin13[] = {0x31, 0x35, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance13[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset13[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration13[] = {0x0};
+static const sal_Unicode outlineNatNum13[] = {0x0};
+static const sal_Unicode outlinePrefix14[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType14[] = {0x36, 0x0};
+static const sal_Unicode outlineSuffix14[] = {0x20, 0x0};
+static const sal_Unicode outlineBulletChar14[] = {0x32, 0x30, 0x32, 0x32, 0x0};
+static const sal_Unicode outlineBulletFontName14[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0};
+static const sal_Unicode outlineParentNumbering14[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin14[] = {0x32, 0x30, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance14[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset14[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration14[] = {0x0};
+static const sal_Unicode outlineNatNum14[] = {0x0};
+static const sal_Unicode outlinePrefix20[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType20[] = {0x34, 0x0};
+static const sal_Unicode outlineSuffix20[] = {0x2e, 0x0};
+static const sal_Unicode outlineBulletChar20[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName20[] = {0x0};
+static const sal_Unicode outlineParentNumbering20[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin20[] = {0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance20[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset20[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration20[] = {0x0};
+static const sal_Unicode outlineNatNum20[] = {0x0};
+static const sal_Unicode outlinePrefix21[] = {0x28, 0x0};
+static const sal_Unicode outlineNumType21[] = {0x31, 0x0};
+static const sal_Unicode outlineSuffix21[] = {0x29, 0x0};
+static const sal_Unicode outlineBulletChar21[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName21[] = {0x0};
+static const sal_Unicode outlineParentNumbering21[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin21[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance21[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset21[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration21[] = {0x0};
+static const sal_Unicode outlineNatNum21[] = {0x0};
+static const sal_Unicode outlinePrefix22[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType22[] = {0x33, 0x0};
+static const sal_Unicode outlineSuffix22[] = {0x2e, 0x0};
+static const sal_Unicode outlineBulletChar22[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName22[] = {0x0};
+static const sal_Unicode outlineParentNumbering22[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin22[] = {0x31, 0x30, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance22[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset22[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration22[] = {0x0};
+static const sal_Unicode outlineNatNum22[] = {0x0};
+static const sal_Unicode outlinePrefix23[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType23[] = {0x30, 0x0};
+static const sal_Unicode outlineSuffix23[] = {0x2e, 0x0};
+static const sal_Unicode outlineBulletChar23[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName23[] = {0x0};
+static const sal_Unicode outlineParentNumbering23[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin23[] = {0x31, 0x35, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance23[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset23[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration23[] = {0x0};
+static const sal_Unicode outlineNatNum23[] = {0x0};
+static const sal_Unicode outlinePrefix24[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType24[] = {0x36, 0x0};
+static const sal_Unicode outlineSuffix24[] = {0x2e, 0x0};
+static const sal_Unicode outlineBulletChar24[] = {0x32, 0x30, 0x32, 0x32, 0x0};
+static const sal_Unicode outlineBulletFontName24[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0};
+static const sal_Unicode outlineParentNumbering24[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin24[] = {0x32, 0x30, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance24[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset24[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration24[] = {0x0};
+static const sal_Unicode outlineNatNum24[] = {0x0};
+static const sal_Unicode outlinePrefix30[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType30[] = {0x34, 0x0};
+static const sal_Unicode outlineSuffix30[] = {0x2e, 0x0};
+static const sal_Unicode outlineBulletChar30[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName30[] = {0x0};
+static const sal_Unicode outlineParentNumbering30[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin30[] = {0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance30[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset30[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration30[] = {0x0};
+static const sal_Unicode outlineNatNum30[] = {0x0};
+static const sal_Unicode outlinePrefix31[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType31[] = {0x34, 0x0};
+static const sal_Unicode outlineSuffix31[] = {0x2e, 0x0};
+static const sal_Unicode outlineBulletChar31[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName31[] = {0x0};
+static const sal_Unicode outlineParentNumbering31[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin31[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance31[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset31[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration31[] = {0x0};
+static const sal_Unicode outlineNatNum31[] = {0x0};
+static const sal_Unicode outlinePrefix32[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType32[] = {0x34, 0x0};
+static const sal_Unicode outlineSuffix32[] = {0x2e, 0x0};
+static const sal_Unicode outlineBulletChar32[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName32[] = {0x0};
+static const sal_Unicode outlineParentNumbering32[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin32[] = {0x31, 0x30, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance32[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset32[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration32[] = {0x0};
+static const sal_Unicode outlineNatNum32[] = {0x0};
+static const sal_Unicode outlinePrefix33[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType33[] = {0x34, 0x0};
+static const sal_Unicode outlineSuffix33[] = {0x2e, 0x0};
+static const sal_Unicode outlineBulletChar33[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName33[] = {0x0};
+static const sal_Unicode outlineParentNumbering33[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin33[] = {0x31, 0x35, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance33[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset33[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration33[] = {0x0};
+static const sal_Unicode outlineNatNum33[] = {0x0};
+static const sal_Unicode outlinePrefix34[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType34[] = {0x34, 0x0};
+static const sal_Unicode outlineSuffix34[] = {0x2e, 0x0};
+static const sal_Unicode outlineBulletChar34[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName34[] = {0x0};
+static const sal_Unicode outlineParentNumbering34[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin34[] = {0x32, 0x30, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance34[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset34[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration34[] = {0x0};
+static const sal_Unicode outlineNatNum34[] = {0x0};
+static const sal_Unicode outlinePrefix40[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType40[] = {0x32, 0x0};
+static const sal_Unicode outlineSuffix40[] = {0x2e, 0x0};
+static const sal_Unicode outlineBulletChar40[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName40[] = {0x0};
+static const sal_Unicode outlineParentNumbering40[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin40[] = {0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance40[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset40[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration40[] = {0x0};
+static const sal_Unicode outlineNatNum40[] = {0x0};
+static const sal_Unicode outlinePrefix41[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType41[] = {0x30, 0x0};
+static const sal_Unicode outlineSuffix41[] = {0x2e, 0x0};
+static const sal_Unicode outlineBulletChar41[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName41[] = {0x0};
+static const sal_Unicode outlineParentNumbering41[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin41[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance41[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset41[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration41[] = {0x0};
+static const sal_Unicode outlineNatNum41[] = {0x0};
+static const sal_Unicode outlinePrefix42[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType42[] = {0x33, 0x0};
+static const sal_Unicode outlineSuffix42[] = {0x2e, 0x0};
+static const sal_Unicode outlineBulletChar42[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName42[] = {0x0};
+static const sal_Unicode outlineParentNumbering42[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin42[] = {0x31, 0x30, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance42[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset42[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration42[] = {0x0};
+static const sal_Unicode outlineNatNum42[] = {0x0};
+static const sal_Unicode outlinePrefix43[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType43[] = {0x31, 0x0};
+static const sal_Unicode outlineSuffix43[] = {0x29, 0x0};
+static const sal_Unicode outlineBulletChar43[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName43[] = {0x0};
+static const sal_Unicode outlineParentNumbering43[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin43[] = {0x31, 0x35, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance43[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset43[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration43[] = {0x0};
+static const sal_Unicode outlineNatNum43[] = {0x0};
+static const sal_Unicode outlinePrefix44[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType44[] = {0x36, 0x0};
+static const sal_Unicode outlineSuffix44[] = {0x20, 0x0};
+static const sal_Unicode outlineBulletChar44[] = {0x32, 0x30, 0x32, 0x32, 0x0};
+static const sal_Unicode outlineBulletFontName44[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0};
+static const sal_Unicode outlineParentNumbering44[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin44[] = {0x32, 0x30, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance44[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset44[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration44[] = {0x0};
+static const sal_Unicode outlineNatNum44[] = {0x0};
+static const sal_Unicode outlinePrefix50[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType50[] = {0x30, 0x0};
+static const sal_Unicode outlineSuffix50[] = {0x2e, 0x0};
+static const sal_Unicode outlineBulletChar50[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName50[] = {0x0};
+static const sal_Unicode outlineParentNumbering50[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin50[] = {0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance50[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset50[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration50[] = {0x0};
+static const sal_Unicode outlineNatNum50[] = {0x0};
+static const sal_Unicode outlinePrefix51[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType51[] = {0x32, 0x0};
+static const sal_Unicode outlineSuffix51[] = {0x2e, 0x0};
+static const sal_Unicode outlineBulletChar51[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName51[] = {0x0};
+static const sal_Unicode outlineParentNumbering51[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin51[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance51[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset51[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration51[] = {0x0};
+static const sal_Unicode outlineNatNum51[] = {0x0};
+static const sal_Unicode outlinePrefix52[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType52[] = {0x31, 0x0};
+static const sal_Unicode outlineSuffix52[] = {0x2e, 0x0};
+static const sal_Unicode outlineBulletChar52[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName52[] = {0x0};
+static const sal_Unicode outlineParentNumbering52[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin52[] = {0x31, 0x30, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance52[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset52[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration52[] = {0x0};
+static const sal_Unicode outlineNatNum52[] = {0x0};
+static const sal_Unicode outlinePrefix53[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType53[] = {0x33, 0x0};
+static const sal_Unicode outlineSuffix53[] = {0x2e, 0x0};
+static const sal_Unicode outlineBulletChar53[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName53[] = {0x0};
+static const sal_Unicode outlineParentNumbering53[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin53[] = {0x31, 0x35, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance53[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset53[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration53[] = {0x0};
+static const sal_Unicode outlineNatNum53[] = {0x0};
+static const sal_Unicode outlinePrefix54[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType54[] = {0x36, 0x0};
+static const sal_Unicode outlineSuffix54[] = {0x20, 0x0};
+static const sal_Unicode outlineBulletChar54[] = {0x32, 0x30, 0x32, 0x32, 0x0};
+static const sal_Unicode outlineBulletFontName54[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0};
+static const sal_Unicode outlineParentNumbering54[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin54[] = {0x32, 0x30, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance54[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset54[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration54[] = {0x0};
+static const sal_Unicode outlineNatNum54[] = {0x0};
+static const sal_Unicode outlinePrefix60[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType60[] = {0x34, 0x0};
+static const sal_Unicode outlineSuffix60[] = {0x20, 0x0};
+static const sal_Unicode outlineBulletChar60[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName60[] = {0x0};
+static const sal_Unicode outlineParentNumbering60[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin60[] = {0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance60[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset60[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration60[] = {0x0};
+static const sal_Unicode outlineNatNum60[] = {0x0};
+static const sal_Unicode outlinePrefix61[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType61[] = {0x34, 0x0};
+static const sal_Unicode outlineSuffix61[] = {0x20, 0x0};
+static const sal_Unicode outlineBulletChar61[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName61[] = {0x0};
+static const sal_Unicode outlineParentNumbering61[] = {0x31, 0x0};
+static const sal_Unicode outlineLeftMargin61[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance61[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset61[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration61[] = {0x0};
+static const sal_Unicode outlineNatNum61[] = {0x0};
+static const sal_Unicode outlinePrefix62[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType62[] = {0x34, 0x0};
+static const sal_Unicode outlineSuffix62[] = {0x20, 0x0};
+static const sal_Unicode outlineBulletChar62[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName62[] = {0x0};
+static const sal_Unicode outlineParentNumbering62[] = {0x32, 0x0};
+static const sal_Unicode outlineLeftMargin62[] = {0x31, 0x30, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance62[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset62[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration62[] = {0x0};
+static const sal_Unicode outlineNatNum62[] = {0x0};
+static const sal_Unicode outlinePrefix63[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType63[] = {0x34, 0x0};
+static const sal_Unicode outlineSuffix63[] = {0x20, 0x0};
+static const sal_Unicode outlineBulletChar63[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName63[] = {0x0};
+static const sal_Unicode outlineParentNumbering63[] = {0x33, 0x0};
+static const sal_Unicode outlineLeftMargin63[] = {0x31, 0x35, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance63[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset63[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration63[] = {0x0};
+static const sal_Unicode outlineNatNum63[] = {0x0};
+static const sal_Unicode outlinePrefix64[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType64[] = {0x34, 0x0};
+static const sal_Unicode outlineSuffix64[] = {0x20, 0x0};
+static const sal_Unicode outlineBulletChar64[] = {0x30, 0x30, 0x32, 0x30, 0x0};
+static const sal_Unicode outlineBulletFontName64[] = {0x0};
+static const sal_Unicode outlineParentNumbering64[] = {0x34, 0x0};
+static const sal_Unicode outlineLeftMargin64[] = {0x32, 0x30, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance64[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset64[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration64[] = {0x0};
+static const sal_Unicode outlineNatNum64[] = {0x0};
+static const sal_Unicode outlinePrefix70[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType70[] = {0x36, 0x0};
+static const sal_Unicode outlineSuffix70[] = {0x20, 0x0};
+static const sal_Unicode outlineBulletChar70[] = {0x32, 0x37, 0x41, 0x32, 0x0};
+static const sal_Unicode outlineBulletFontName70[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0};
+static const sal_Unicode outlineParentNumbering70[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin70[] = {0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance70[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset70[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration70[] = {0x0};
+static const sal_Unicode outlineNatNum70[] = {0x0};
+static const sal_Unicode outlinePrefix71[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType71[] = {0x36, 0x0};
+static const sal_Unicode outlineSuffix71[] = {0x20, 0x0};
+static const sal_Unicode outlineBulletChar71[] = {0x45, 0x30, 0x30, 0x36, 0x0};
+static const sal_Unicode outlineBulletFontName71[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0};
+static const sal_Unicode outlineParentNumbering71[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin71[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance71[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset71[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration71[] = {0x0};
+static const sal_Unicode outlineNatNum71[] = {0x0};
+static const sal_Unicode outlinePrefix72[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType72[] = {0x36, 0x0};
+static const sal_Unicode outlineSuffix72[] = {0x29, 0x0};
+static const sal_Unicode outlineBulletChar72[] = {0x45, 0x30, 0x30, 0x34, 0x0};
+static const sal_Unicode outlineBulletFontName72[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0};
+static const sal_Unicode outlineParentNumbering72[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin72[] = {0x31, 0x30, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance72[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset72[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration72[] = {0x0};
+static const sal_Unicode outlineNatNum72[] = {0x0};
+static const sal_Unicode outlinePrefix73[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType73[] = {0x36, 0x0};
+static const sal_Unicode outlineSuffix73[] = {0x20, 0x0};
+static const sal_Unicode outlineBulletChar73[] = {0x32, 0x30, 0x32, 0x32, 0x0};
+static const sal_Unicode outlineBulletFontName73[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0};
+static const sal_Unicode outlineParentNumbering73[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin73[] = {0x31, 0x35, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance73[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset73[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration73[] = {0x0};
+static const sal_Unicode outlineNatNum73[] = {0x0};
+static const sal_Unicode outlinePrefix74[] = {0x20, 0x0};
+static const sal_Unicode outlineNumType74[] = {0x36, 0x0};
+static const sal_Unicode outlineSuffix74[] = {0x20, 0x0};
+static const sal_Unicode outlineBulletChar74[] = {0x32, 0x30, 0x32, 0x32, 0x0};
+static const sal_Unicode outlineBulletFontName74[] = {0x53, 0x74, 0x61, 0x72, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x0};
+static const sal_Unicode outlineParentNumbering74[] = {0x30, 0x0};
+static const sal_Unicode outlineLeftMargin74[] = {0x32, 0x30, 0x30, 0x0};
+static const sal_Unicode outlineSymbolTextDistance74[] = {0x35, 0x30, 0x0};
+static const sal_Unicode outlineFirstLineOffset74[] = {0x30, 0x0};
+static const sal_Unicode outlineTransliteration74[] = {0x0};
+static const sal_Unicode outlineNatNum74[] = {0x0};
+static const sal_Int16 outlineNbOfStyles = 8;
+
+static const sal_Int16 outlineNbOfLevelsPerStyle = 5;
+
+static const sal_Int16 outlineNbOfAttributesPerLevel = 11;
+
+static const sal_Unicode* outlineStyle0Level0[] = { outlinePrefix00, outlineNumType00, outlineSuffix00, outlineBulletChar00, outlineBulletFontName00, outlineParentNumbering00, outlineLeftMargin00, outlineSymbolTextDistance00, outlineFirstLineOffset00, outlineTransliteration00, outlineNatNum00, NULL };
+static const sal_Unicode* outlineStyle0Level1[] = { outlinePrefix01, outlineNumType01, outlineSuffix01, outlineBulletChar01, outlineBulletFontName01, outlineParentNumbering01, outlineLeftMargin01, outlineSymbolTextDistance01, outlineFirstLineOffset01, outlineTransliteration01, outlineNatNum01, NULL };
+static const sal_Unicode* outlineStyle0Level2[] = { outlinePrefix02, outlineNumType02, outlineSuffix02, outlineBulletChar02, outlineBulletFontName02, outlineParentNumbering02, outlineLeftMargin02, outlineSymbolTextDistance02, outlineFirstLineOffset02, outlineTransliteration02, outlineNatNum02, NULL };
+static const sal_Unicode* outlineStyle0Level3[] = { outlinePrefix03, outlineNumType03, outlineSuffix03, outlineBulletChar03, outlineBulletFontName03, outlineParentNumbering03, outlineLeftMargin03, outlineSymbolTextDistance03, outlineFirstLineOffset03, outlineTransliteration03, outlineNatNum03, NULL };
+static const sal_Unicode* outlineStyle0Level4[] = { outlinePrefix04, outlineNumType04, outlineSuffix04, outlineBulletChar04, outlineBulletFontName04, outlineParentNumbering04, outlineLeftMargin04, outlineSymbolTextDistance04, outlineFirstLineOffset04, outlineTransliteration04, outlineNatNum04, NULL };
+static const sal_Unicode* outlineStyle1Level0[] = { outlinePrefix10, outlineNumType10, outlineSuffix10, outlineBulletChar10, outlineBulletFontName10, outlineParentNumbering10, outlineLeftMargin10, outlineSymbolTextDistance10, outlineFirstLineOffset10, outlineTransliteration10, outlineNatNum10, NULL };
+static const sal_Unicode* outlineStyle1Level1[] = { outlinePrefix11, outlineNumType11, outlineSuffix11, outlineBulletChar11, outlineBulletFontName11, outlineParentNumbering11, outlineLeftMargin11, outlineSymbolTextDistance11, outlineFirstLineOffset11, outlineTransliteration11, outlineNatNum11, NULL };
+static const sal_Unicode* outlineStyle1Level2[] = { outlinePrefix12, outlineNumType12, outlineSuffix12, outlineBulletChar12, outlineBulletFontName12, outlineParentNumbering12, outlineLeftMargin12, outlineSymbolTextDistance12, outlineFirstLineOffset12, outlineTransliteration12, outlineNatNum12, NULL };
+static const sal_Unicode* outlineStyle1Level3[] = { outlinePrefix13, outlineNumType13, outlineSuffix13, outlineBulletChar13, outlineBulletFontName13, outlineParentNumbering13, outlineLeftMargin13, outlineSymbolTextDistance13, outlineFirstLineOffset13, outlineTransliteration13, outlineNatNum13, NULL };
+static const sal_Unicode* outlineStyle1Level4[] = { outlinePrefix14, outlineNumType14, outlineSuffix14, outlineBulletChar14, outlineBulletFontName14, outlineParentNumbering14, outlineLeftMargin14, outlineSymbolTextDistance14, outlineFirstLineOffset14, outlineTransliteration14, outlineNatNum14, NULL };
+static const sal_Unicode* outlineStyle2Level0[] = { outlinePrefix20, outlineNumType20, outlineSuffix20, outlineBulletChar20, outlineBulletFontName20, outlineParentNumbering20, outlineLeftMargin20, outlineSymbolTextDistance20, outlineFirstLineOffset20, outlineTransliteration20, outlineNatNum20, NULL };
+static const sal_Unicode* outlineStyle2Level1[] = { outlinePrefix21, outlineNumType21, outlineSuffix21, outlineBulletChar21, outlineBulletFontName21, outlineParentNumbering21, outlineLeftMargin21, outlineSymbolTextDistance21, outlineFirstLineOffset21, outlineTransliteration21, outlineNatNum21, NULL };
+static const sal_Unicode* outlineStyle2Level2[] = { outlinePrefix22, outlineNumType22, outlineSuffix22, outlineBulletChar22, outlineBulletFontName22, outlineParentNumbering22, outlineLeftMargin22, outlineSymbolTextDistance22, outlineFirstLineOffset22, outlineTransliteration22, outlineNatNum22, NULL };
+static const sal_Unicode* outlineStyle2Level3[] = { outlinePrefix23, outlineNumType23, outlineSuffix23, outlineBulletChar23, outlineBulletFontName23, outlineParentNumbering23, outlineLeftMargin23, outlineSymbolTextDistance23, outlineFirstLineOffset23, outlineTransliteration23, outlineNatNum23, NULL };
+static const sal_Unicode* outlineStyle2Level4[] = { outlinePrefix24, outlineNumType24, outlineSuffix24, outlineBulletChar24, outlineBulletFontName24, outlineParentNumbering24, outlineLeftMargin24, outlineSymbolTextDistance24, outlineFirstLineOffset24, outlineTransliteration24, outlineNatNum24, NULL };
+static const sal_Unicode* outlineStyle3Level0[] = { outlinePrefix30, outlineNumType30, outlineSuffix30, outlineBulletChar30, outlineBulletFontName30, outlineParentNumbering30, outlineLeftMargin30, outlineSymbolTextDistance30, outlineFirstLineOffset30, outlineTransliteration30, outlineNatNum30, NULL };
+static const sal_Unicode* outlineStyle3Level1[] = { outlinePrefix31, outlineNumType31, outlineSuffix31, outlineBulletChar31, outlineBulletFontName31, outlineParentNumbering31, outlineLeftMargin31, outlineSymbolTextDistance31, outlineFirstLineOffset31, outlineTransliteration31, outlineNatNum31, NULL };
+static const sal_Unicode* outlineStyle3Level2[] = { outlinePrefix32, outlineNumType32, outlineSuffix32, outlineBulletChar32, outlineBulletFontName32, outlineParentNumbering32, outlineLeftMargin32, outlineSymbolTextDistance32, outlineFirstLineOffset32, outlineTransliteration32, outlineNatNum32, NULL };
+static const sal_Unicode* outlineStyle3Level3[] = { outlinePrefix33, outlineNumType33, outlineSuffix33, outlineBulletChar33, outlineBulletFontName33, outlineParentNumbering33, outlineLeftMargin33, outlineSymbolTextDistance33, outlineFirstLineOffset33, outlineTransliteration33, outlineNatNum33, NULL };
+static const sal_Unicode* outlineStyle3Level4[] = { outlinePrefix34, outlineNumType34, outlineSuffix34, outlineBulletChar34, outlineBulletFontName34, outlineParentNumbering34, outlineLeftMargin34, outlineSymbolTextDistance34, outlineFirstLineOffset34, outlineTransliteration34, outlineNatNum34, NULL };
+static const sal_Unicode* outlineStyle4Level0[] = { outlinePrefix40, outlineNumType40, outlineSuffix40, outlineBulletChar40, outlineBulletFontName40, outlineParentNumbering40, outlineLeftMargin40, outlineSymbolTextDistance40, outlineFirstLineOffset40, outlineTransliteration40, outlineNatNum40, NULL };
+static const sal_Unicode* outlineStyle4Level1[] = { outlinePrefix41, outlineNumType41, outlineSuffix41, outlineBulletChar41, outlineBulletFontName41, outlineParentNumbering41, outlineLeftMargin41, outlineSymbolTextDistance41, outlineFirstLineOffset41, outlineTransliteration41, outlineNatNum41, NULL };
+static const sal_Unicode* outlineStyle4Level2[] = { outlinePrefix42, outlineNumType42, outlineSuffix42, outlineBulletChar42, outlineBulletFontName42, outlineParentNumbering42, outlineLeftMargin42, outlineSymbolTextDistance42, outlineFirstLineOffset42, outlineTransliteration42, outlineNatNum42, NULL };
+static const sal_Unicode* outlineStyle4Level3[] = { outlinePrefix43, outlineNumType43, outlineSuffix43, outlineBulletChar43, outlineBulletFontName43, outlineParentNumbering43, outlineLeftMargin43, outlineSymbolTextDistance43, outlineFirstLineOffset43, outlineTransliteration43, outlineNatNum43, NULL };
+static const sal_Unicode* outlineStyle4Level4[] = { outlinePrefix44, outlineNumType44, outlineSuffix44, outlineBulletChar44, outlineBulletFontName44, outlineParentNumbering44, outlineLeftMargin44, outlineSymbolTextDistance44, outlineFirstLineOffset44, outlineTransliteration44, outlineNatNum44, NULL };
+static const sal_Unicode* outlineStyle5Level0[] = { outlinePrefix50, outlineNumType50, outlineSuffix50, outlineBulletChar50, outlineBulletFontName50, outlineParentNumbering50, outlineLeftMargin50, outlineSymbolTextDistance50, outlineFirstLineOffset50, outlineTransliteration50, outlineNatNum50, NULL };
+static const sal_Unicode* outlineStyle5Level1[] = { outlinePrefix51, outlineNumType51, outlineSuffix51, outlineBulletChar51, outlineBulletFontName51, outlineParentNumbering51, outlineLeftMargin51, outlineSymbolTextDistance51, outlineFirstLineOffset51, outlineTransliteration51, outlineNatNum51, NULL };
+static const sal_Unicode* outlineStyle5Level2[] = { outlinePrefix52, outlineNumType52, outlineSuffix52, outlineBulletChar52, outlineBulletFontName52, outlineParentNumbering52, outlineLeftMargin52, outlineSymbolTextDistance52, outlineFirstLineOffset52, outlineTransliteration52, outlineNatNum52, NULL };
+static const sal_Unicode* outlineStyle5Level3[] = { outlinePrefix53, outlineNumType53, outlineSuffix53, outlineBulletChar53, outlineBulletFontName53, outlineParentNumbering53, outlineLeftMargin53, outlineSymbolTextDistance53, outlineFirstLineOffset53, outlineTransliteration53, outlineNatNum53, NULL };
+static const sal_Unicode* outlineStyle5Level4[] = { outlinePrefix54, outlineNumType54, outlineSuffix54, outlineBulletChar54, outlineBulletFontName54, outlineParentNumbering54, outlineLeftMargin54, outlineSymbolTextDistance54, outlineFirstLineOffset54, outlineTransliteration54, outlineNatNum54, NULL };
+static const sal_Unicode* outlineStyle6Level0[] = { outlinePrefix60, outlineNumType60, outlineSuffix60, outlineBulletChar60, outlineBulletFontName60, outlineParentNumbering60, outlineLeftMargin60, outlineSymbolTextDistance60, outlineFirstLineOffset60, outlineTransliteration60, outlineNatNum60, NULL };
+static const sal_Unicode* outlineStyle6Level1[] = { outlinePrefix61, outlineNumType61, outlineSuffix61, outlineBulletChar61, outlineBulletFontName61, outlineParentNumbering61, outlineLeftMargin61, outlineSymbolTextDistance61, outlineFirstLineOffset61, outlineTransliteration61, outlineNatNum61, NULL };
+static const sal_Unicode* outlineStyle6Level2[] = { outlinePrefix62, outlineNumType62, outlineSuffix62, outlineBulletChar62, outlineBulletFontName62, outlineParentNumbering62, outlineLeftMargin62, outlineSymbolTextDistance62, outlineFirstLineOffset62, outlineTransliteration62, outlineNatNum62, NULL };
+static const sal_Unicode* outlineStyle6Level3[] = { outlinePrefix63, outlineNumType63, outlineSuffix63, outlineBulletChar63, outlineBulletFontName63, outlineParentNumbering63, outlineLeftMargin63, outlineSymbolTextDistance63, outlineFirstLineOffset63, outlineTransliteration63, outlineNatNum63, NULL };
+static const sal_Unicode* outlineStyle6Level4[] = { outlinePrefix64, outlineNumType64, outlineSuffix64, outlineBulletChar64, outlineBulletFontName64, outlineParentNumbering64, outlineLeftMargin64, outlineSymbolTextDistance64, outlineFirstLineOffset64, outlineTransliteration64, outlineNatNum64, NULL };
+static const sal_Unicode* outlineStyle7Level0[] = { outlinePrefix70, outlineNumType70, outlineSuffix70, outlineBulletChar70, outlineBulletFontName70, outlineParentNumbering70, outlineLeftMargin70, outlineSymbolTextDistance70, outlineFirstLineOffset70, outlineTransliteration70, outlineNatNum70, NULL };
+static const sal_Unicode* outlineStyle7Level1[] = { outlinePrefix71, outlineNumType71, outlineSuffix71, outlineBulletChar71, outlineBulletFontName71, outlineParentNumbering71, outlineLeftMargin71, outlineSymbolTextDistance71, outlineFirstLineOffset71, outlineTransliteration71, outlineNatNum71, NULL };
+static const sal_Unicode* outlineStyle7Level2[] = { outlinePrefix72, outlineNumType72, outlineSuffix72, outlineBulletChar72, outlineBulletFontName72, outlineParentNumbering72, outlineLeftMargin72, outlineSymbolTextDistance72, outlineFirstLineOffset72, outlineTransliteration72, outlineNatNum72, NULL };
+static const sal_Unicode* outlineStyle7Level3[] = { outlinePrefix73, outlineNumType73, outlineSuffix73, outlineBulletChar73, outlineBulletFontName73, outlineParentNumbering73, outlineLeftMargin73, outlineSymbolTextDistance73, outlineFirstLineOffset73, outlineTransliteration73, outlineNatNum73, NULL };
+static const sal_Unicode* outlineStyle7Level4[] = { outlinePrefix74, outlineNumType74, outlineSuffix74, outlineBulletChar74, outlineBulletFontName74, outlineParentNumbering74, outlineLeftMargin74, outlineSymbolTextDistance74, outlineFirstLineOffset74, outlineTransliteration74, outlineNatNum74, NULL };
+
+static const sal_Unicode** outlineStyle0[] = { outlineStyle0Level0, outlineStyle0Level1, outlineStyle0Level2, outlineStyle0Level3, outlineStyle0Level4, NULL };
+static const sal_Unicode** outlineStyle1[] = { outlineStyle1Level0, outlineStyle1Level1, outlineStyle1Level2, outlineStyle1Level3, outlineStyle1Level4, NULL };
+static const sal_Unicode** outlineStyle2[] = { outlineStyle2Level0, outlineStyle2Level1, outlineStyle2Level2, outlineStyle2Level3, outlineStyle2Level4, NULL };
+static const sal_Unicode** outlineStyle3[] = { outlineStyle3Level0, outlineStyle3Level1, outlineStyle3Level2, outlineStyle3Level3, outlineStyle3Level4, NULL };
+static const sal_Unicode** outlineStyle4[] = { outlineStyle4Level0, outlineStyle4Level1, outlineStyle4Level2, outlineStyle4Level3, outlineStyle4Level4, NULL };
+static const sal_Unicode** outlineStyle5[] = { outlineStyle5Level0, outlineStyle5Level1, outlineStyle5Level2, outlineStyle5Level3, outlineStyle5Level4, NULL };
+static const sal_Unicode** outlineStyle6[] = { outlineStyle6Level0, outlineStyle6Level1, outlineStyle6Level2, outlineStyle6Level3, outlineStyle6Level4, NULL };
+static const sal_Unicode** outlineStyle7[] = { outlineStyle7Level0, outlineStyle7Level1, outlineStyle7Level2, outlineStyle7Level3, outlineStyle7Level4, NULL };
+
+static const sal_Unicode*** LCOutlineNumberingLevelsArray[] = {
+ outlineStyle0,
+ outlineStyle1,
+ outlineStyle2,
+ outlineStyle3,
+ outlineStyle4,
+ outlineStyle5,
+ outlineStyle6,
+ outlineStyle7,
+ NULL
+};
+
+SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US( sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes )
+{
+ nStyles = outlineNbOfStyles;
+ nLevels = outlineNbOfLevelsPerStyle;
+ nAttributes = outlineNbOfAttributesPerLevel;
+ return LCOutlineNumberingLevelsArray;
+}
+} // extern "C"
+
diff --git a/vcl/workben/localestub/localedata_en_ZA.cxx b/vcl/workben/localestub/localedata_en_ZA.cxx
new file mode 100644
index 000000000..ecd9a9cde
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_ZA.cxx
@@ -0,0 +1,1263 @@
+#include <sal/types.h>
+
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = {0x65, 0x6e, 0x0};
+static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0};
+static const sal_Unicode countryID[] = {0x5a, 0x41, 0x0};
+static const sal_Unicode countryDefaultName[] = {0x53, 0x6f, 0x75, 0x74, 0x68, 0x20, 0x41, 0x66, 0x72, 0x69, 0x63, 0x61, 0x0};
+static const sal_Unicode Variant[] = {0x0};
+
+static const sal_Unicode* LCInfoArray[] = {
+ langID,
+ langDefaultName,
+ countryID,
+ countryDefaultName,
+ Variant
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_ZA(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCInfoArray;
+}
+
+
+static const sal_Unicode LC_CTYPE_Unoid[] = {0x0};
+static const sal_Unicode dateSeparator[] = {0x2f, 0x0};
+static const sal_Unicode thousandSeparator[] = {0x2c, 0x0};
+static const sal_Unicode decimalSeparator[] = {0x2e, 0x0};
+static const sal_Unicode timeSeparator[] = {0x3a, 0x0};
+static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0};
+static const sal_Unicode listSeparator[] = {0x3b, 0x0};
+static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateDaySeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0};
+static const sal_Unicode quotationStart[] = {0x2018, 0x0};
+static const sal_Unicode quotationEnd[] = {0x2019, 0x0};
+static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0};
+static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0};
+static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0};
+static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0};
+static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0};
+
+static const sal_Unicode* LCType[] = {
+ LC_CTYPE_Unoid,
+ dateSeparator,
+ thousandSeparator,
+ decimalSeparator,
+ timeSeparator,
+ time100SecSeparator,
+ listSeparator,
+ quotationStart,
+ quotationEnd,
+ doubleQuotationStart,
+ doubleQuotationEnd,
+ timeAM,
+ timePM,
+ measurementSystem,
+ LongDateDayOfWeekSeparator,
+ LongDateDaySeparator,
+ LongDateMonthSeparator,
+ LongDateYearSeparator
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_ZA(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCType;
+}
+static const sal_Unicode replaceFrom0[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x0};
+static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x52, 0x2d, 0x31, 0x43, 0x30, 0x39, 0x5d, 0x0};
+static const sal_Unicode FormatKey0[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement0[] = {1};
+static const sal_Unicode FormatType0[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage0[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex0[] = {0};
+static const sal_Unicode FormatCode0[] = {0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x0};
+static const sal_Unicode FormatDefaultName0[] = {0x0};
+static const sal_Unicode FormatKey1[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement1[] = {1};
+static const sal_Unicode FormatType1[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage1[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex1[] = {1};
+static const sal_Unicode FormatCode1[] = {0x30, 0x0};
+static const sal_Unicode FormatDefaultName1[] = {0x0};
+static const sal_Unicode FormatKey2[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement2[] = {0};
+static const sal_Unicode FormatType2[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage2[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex2[] = {2};
+static const sal_Unicode FormatCode2[] = {0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName2[] = {0x0};
+static const sal_Unicode FormatKey3[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement3[] = {0};
+static const sal_Unicode FormatType3[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage3[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex3[] = {3};
+static const sal_Unicode FormatCode3[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName3[] = {0x0};
+static const sal_Unicode FormatKey4[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement4[] = {0};
+static const sal_Unicode FormatType4[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage4[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex4[] = {4};
+static const sal_Unicode FormatCode4[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName4[] = {0x0};
+static const sal_Unicode FormatKey5[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement5[] = {0};
+static const sal_Unicode FormatType5[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage5[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex5[] = {5};
+static const sal_Unicode FormatCode5[] = {0x23, 0x2c, 0x23, 0x23, 0x23, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName5[] = {0x0};
+static const sal_Unicode FormatKey6[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement6[] = {0};
+static const sal_Unicode FormatType6[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage6[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex6[] = {70};
+static const sal_Unicode FormatCode6[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x29, 0x0};
+static const sal_Unicode FormatDefaultName6[] = {0x0};
+static const sal_Unicode FormatKey7[] = {0x46, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement7[] = {0};
+static const sal_Unicode FormatType7[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage7[] = {0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex7[] = {71};
+static const sal_Unicode FormatCode7[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x5f, 0x29, 0x3b, 0x28, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x29, 0x0};
+static const sal_Unicode FormatDefaultName7[] = {0x0};
+static const sal_Unicode FormatKey8[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement8[] = {0};
+static const sal_Unicode FormatType8[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage8[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex8[] = {6};
+static const sal_Unicode FormatCode8[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName8[] = {0x0};
+static const sal_Unicode FormatKey9[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement9[] = {1};
+static const sal_Unicode FormatType9[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage9[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex9[] = {7};
+static const sal_Unicode FormatCode9[] = {0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName9[] = {0x0};
+static const sal_Unicode FormatKey10[] = {0x53, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement10[] = {0};
+static const sal_Unicode FormatType10[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage10[] = {0x53, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x49, 0x46, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex10[] = {78};
+static const sal_Unicode FormatCode10[] = {0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x45, 0x2b, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName10[] = {0x0};
+static const sal_Unicode FormatKey11[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement11[] = {1};
+static const sal_Unicode FormatType11[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage11[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex11[] = {8};
+static const sal_Unicode FormatCode11[] = {0x30, 0x25, 0x0};
+static const sal_Unicode FormatDefaultName11[] = {0x0};
+static const sal_Unicode FormatKey12[] = {0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement12[] = {1};
+static const sal_Unicode FormatType12[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage12[] = {0x50, 0x45, 0x52, 0x43, 0x45, 0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x0};
+static const sal_Unicode Formatindex12[] = {9};
+static const sal_Unicode FormatCode12[] = {0x30, 0x2e, 0x30, 0x30, 0x25, 0x0};
+static const sal_Unicode FormatDefaultName12[] = {0x0};
+static const sal_Unicode FormatKey13[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement13[] = {1};
+static const sal_Unicode FormatType13[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage13[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex13[] = {12};
+static const sal_Unicode FormatCode13[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName13[] = {0x0};
+static const sal_Unicode FormatKey14[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement14[] = {0};
+static const sal_Unicode FormatType14[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage14[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex14[] = {13};
+static const sal_Unicode FormatCode14[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName14[] = {0x0};
+static const sal_Unicode FormatKey15[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement15[] = {0};
+static const sal_Unicode FormatType15[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage15[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex15[] = {14};
+static const sal_Unicode FormatCode15[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName15[] = {0x0};
+static const sal_Unicode FormatKey16[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement16[] = {1};
+static const sal_Unicode FormatType16[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage16[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex16[] = {15};
+static const sal_Unicode FormatCode16[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName16[] = {0x0};
+static const sal_Unicode FormatKey17[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement17[] = {0};
+static const sal_Unicode FormatType17[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage17[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex17[] = {16};
+static const sal_Unicode FormatCode17[] = {0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x30, 0x30, 0x20, 0x43, 0x43, 0x43, 0x0};
+static const sal_Unicode FormatDefaultName17[] = {0x0};
+static const sal_Unicode FormatKey18[] = {0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement18[] = {0};
+static const sal_Unicode FormatType18[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage18[] = {0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x0};
+static const sal_Unicode Formatindex18[] = {17};
+static const sal_Unicode FormatCode18[] = {0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x20, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x3b, 0x5b, 0x52, 0x45, 0x44, 0x5d, 0x5b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5d, 0x2d, 0x23, 0x2c, 0x23, 0x23, 0x30, 0x2e, 0x2d, 0x2d, 0x0};
+static const sal_Unicode FormatDefaultName18[] = {0x0};
+static const sal_Unicode FormatKey19[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement19[] = {1};
+static const sal_Unicode FormatType19[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage19[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex19[] = {18};
+static const sal_Unicode FormatCode19[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName19[] = {0x0};
+static const sal_Unicode FormatKey20[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x39, 0x0};
+static const sal_Unicode defaultFormatElement20[] = {1};
+static const sal_Unicode FormatType20[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage20[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex20[] = {19};
+static const sal_Unicode FormatCode20[] = {0x44, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName20[] = {0x0};
+static const sal_Unicode FormatKey21[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement21[] = {1};
+static const sal_Unicode FormatType21[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage21[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex21[] = {20};
+static const sal_Unicode FormatCode21[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName21[] = {0x0};
+static const sal_Unicode FormatKey22[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement22[] = {0};
+static const sal_Unicode FormatType22[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage22[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex22[] = {21};
+static const sal_Unicode FormatCode22[] = {0x59, 0x59, 0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName22[] = {0x0};
+static const sal_Unicode FormatKey23[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x30, 0x0};
+static const sal_Unicode defaultFormatElement23[] = {0};
+static const sal_Unicode FormatType23[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage23[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex23[] = {22};
+static const sal_Unicode FormatCode23[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName23[] = {0x0};
+static const sal_Unicode FormatKey24[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement24[] = {0};
+static const sal_Unicode FormatType24[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage24[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex24[] = {23};
+static const sal_Unicode FormatCode24[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName24[] = {0x0};
+static const sal_Unicode FormatKey25[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement25[] = {0};
+static const sal_Unicode FormatType25[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage25[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex25[] = {24};
+static const sal_Unicode FormatCode25[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x2e, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName25[] = {0x0};
+static const sal_Unicode FormatKey26[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement26[] = {0};
+static const sal_Unicode FormatType26[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage26[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex26[] = {25};
+static const sal_Unicode FormatCode26[] = {0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName26[] = {0x0};
+static const sal_Unicode FormatKey27[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement27[] = {0};
+static const sal_Unicode FormatType27[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage27[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex27[] = {26};
+static const sal_Unicode FormatCode27[] = {0x44, 0x2e, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName27[] = {0x0};
+static const sal_Unicode FormatKey28[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement28[] = {0};
+static const sal_Unicode FormatType28[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage28[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex28[] = {27};
+static const sal_Unicode FormatCode28[] = {0x4e, 0x4e, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName28[] = {0x0};
+static const sal_Unicode FormatKey29[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement29[] = {0};
+static const sal_Unicode FormatType29[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage29[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex29[] = {28};
+static const sal_Unicode FormatCode29[] = {0x4e, 0x4e, 0x20, 0x44, 0x44, 0x2f, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName29[] = {0x0};
+static const sal_Unicode FormatKey30[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement30[] = {0};
+static const sal_Unicode FormatType30[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage30[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex30[] = {29};
+static const sal_Unicode FormatCode30[] = {0x4e, 0x4e, 0x20, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName30[] = {0x0};
+static const sal_Unicode FormatKey31[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement31[] = {0};
+static const sal_Unicode FormatType31[] = {0x6c, 0x6f, 0x6e, 0x67, 0x0};
+static const sal_Unicode FormatUsage31[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex31[] = {30};
+static const sal_Unicode FormatCode31[] = {0x4e, 0x4e, 0x4e, 0x4e, 0x44, 0x20, 0x4d, 0x4d, 0x4d, 0x4d, 0x20, 0x59, 0x59, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName31[] = {0x0};
+static const sal_Unicode FormatKey32[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x38, 0x0};
+static const sal_Unicode defaultFormatElement32[] = {0};
+static const sal_Unicode FormatType32[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage32[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex32[] = {31};
+static const sal_Unicode FormatCode32[] = {0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName32[] = {0x0};
+static const sal_Unicode FormatKey33[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x39, 0x0};
+static const sal_Unicode defaultFormatElement33[] = {0};
+static const sal_Unicode FormatType33[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage33[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex33[] = {32};
+static const sal_Unicode FormatCode33[] = {0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName33[] = {0x0};
+static const sal_Unicode FormatKey34[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x30, 0x0};
+static const sal_Unicode defaultFormatElement34[] = {0};
+static const sal_Unicode FormatType34[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage34[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex34[] = {33};
+static const sal_Unicode FormatCode34[] = {0x59, 0x59, 0x59, 0x59, 0x2d, 0x4d, 0x4d, 0x2d, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName34[] = {0x49, 0x53, 0x4f, 0x20, 0x38, 0x36, 0x30, 0x31, 0x0};
+static const sal_Unicode FormatKey35[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement35[] = {0};
+static const sal_Unicode FormatType35[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage35[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex35[] = {34};
+static const sal_Unicode FormatCode35[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName35[] = {0x0};
+static const sal_Unicode FormatKey36[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement36[] = {0};
+static const sal_Unicode FormatType36[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage36[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex36[] = {35};
+static const sal_Unicode FormatCode36[] = {0x4d, 0x4d, 0x4d, 0x20, 0x44, 0x44, 0x0};
+static const sal_Unicode FormatDefaultName36[] = {0x0};
+static const sal_Unicode FormatKey37[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement37[] = {0};
+static const sal_Unicode FormatType37[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage37[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex37[] = {36};
+static const sal_Unicode FormatCode37[] = {0x4d, 0x4d, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName37[] = {0x0};
+static const sal_Unicode FormatKey38[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement38[] = {0};
+static const sal_Unicode FormatType38[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage38[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex38[] = {37};
+static const sal_Unicode FormatCode38[] = {0x51, 0x51, 0x20, 0x59, 0x59, 0x0};
+static const sal_Unicode FormatDefaultName38[] = {0x0};
+static const sal_Unicode FormatKey39[] = {0x44, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement39[] = {0};
+static const sal_Unicode FormatType39[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage39[] = {0x44, 0x41, 0x54, 0x45, 0x0};
+static const sal_Unicode Formatindex39[] = {38};
+static const sal_Unicode FormatCode39[] = {0x57, 0x57, 0x0};
+static const sal_Unicode FormatDefaultName39[] = {0x0};
+static const sal_Unicode FormatKey40[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement40[] = {1};
+static const sal_Unicode FormatType40[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage40[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex40[] = {39};
+static const sal_Unicode FormatCode40[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName40[] = {0x0};
+static const sal_Unicode FormatKey41[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement41[] = {1};
+static const sal_Unicode FormatType41[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage41[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex41[] = {40};
+static const sal_Unicode FormatCode41[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName41[] = {0x0};
+static const sal_Unicode FormatKey42[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x33, 0x0};
+static const sal_Unicode defaultFormatElement42[] = {0};
+static const sal_Unicode FormatType42[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage42[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex42[] = {41};
+static const sal_Unicode FormatCode42[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName42[] = {0x0};
+static const sal_Unicode FormatKey43[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x34, 0x0};
+static const sal_Unicode defaultFormatElement43[] = {0};
+static const sal_Unicode FormatType43[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage43[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex43[] = {42};
+static const sal_Unicode FormatCode43[] = {0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x20, 0x41, 0x4d, 0x2f, 0x50, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName43[] = {0x0};
+static const sal_Unicode FormatKey44[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x35, 0x0};
+static const sal_Unicode defaultFormatElement44[] = {0};
+static const sal_Unicode FormatType44[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage44[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex44[] = {43};
+static const sal_Unicode FormatCode44[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName44[] = {0x0};
+static const sal_Unicode FormatKey45[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x36, 0x0};
+static const sal_Unicode defaultFormatElement45[] = {0};
+static const sal_Unicode FormatType45[] = {0x73, 0x68, 0x6f, 0x72, 0x74, 0x0};
+static const sal_Unicode FormatUsage45[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex45[] = {44};
+static const sal_Unicode FormatCode45[] = {0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName45[] = {0x0};
+static const sal_Unicode FormatKey46[] = {0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x37, 0x0};
+static const sal_Unicode defaultFormatElement46[] = {0};
+static const sal_Unicode FormatType46[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage46[] = {0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex46[] = {45};
+static const sal_Unicode FormatCode46[] = {0x5b, 0x48, 0x48, 0x5d, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x2e, 0x30, 0x30, 0x0};
+static const sal_Unicode FormatDefaultName46[] = {0x0};
+static const sal_Unicode FormatKey47[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x31, 0x0};
+static const sal_Unicode defaultFormatElement47[] = {1};
+static const sal_Unicode FormatType47[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage47[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex47[] = {46};
+static const sal_Unicode FormatCode47[] = {0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x0};
+static const sal_Unicode FormatDefaultName47[] = {0x0};
+static const sal_Unicode FormatKey48[] = {0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x6b, 0x65, 0x79, 0x32, 0x0};
+static const sal_Unicode defaultFormatElement48[] = {0};
+static const sal_Unicode FormatType48[] = {0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x0};
+static const sal_Unicode FormatUsage48[] = {0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x0};
+static const sal_Unicode Formatindex48[] = {47};
+static const sal_Unicode FormatCode48[] = {0x59, 0x59, 0x59, 0x59, 0x2f, 0x4d, 0x4d, 0x2f, 0x44, 0x44, 0x20, 0x48, 0x48, 0x3a, 0x4d, 0x4d, 0x3a, 0x53, 0x53, 0x0};
+static const sal_Unicode FormatDefaultName48[] = {0x0};
+
+static const sal_Int16 FormatElementsCount0 = 49;
+static const sal_Unicode* FormatElementsArray0[] = {
+ FormatCode0,
+ FormatDefaultName0,
+ FormatKey0,
+ FormatType0,
+ FormatUsage0,
+ Formatindex0,
+ defaultFormatElement0,
+ FormatCode1,
+ FormatDefaultName1,
+ FormatKey1,
+ FormatType1,
+ FormatUsage1,
+ Formatindex1,
+ defaultFormatElement1,
+ FormatCode2,
+ FormatDefaultName2,
+ FormatKey2,
+ FormatType2,
+ FormatUsage2,
+ Formatindex2,
+ defaultFormatElement2,
+ FormatCode3,
+ FormatDefaultName3,
+ FormatKey3,
+ FormatType3,
+ FormatUsage3,
+ Formatindex3,
+ defaultFormatElement3,
+ FormatCode4,
+ FormatDefaultName4,
+ FormatKey4,
+ FormatType4,
+ FormatUsage4,
+ Formatindex4,
+ defaultFormatElement4,
+ FormatCode5,
+ FormatDefaultName5,
+ FormatKey5,
+ FormatType5,
+ FormatUsage5,
+ Formatindex5,
+ defaultFormatElement5,
+ FormatCode6,
+ FormatDefaultName6,
+ FormatKey6,
+ FormatType6,
+ FormatUsage6,
+ Formatindex6,
+ defaultFormatElement6,
+ FormatCode7,
+ FormatDefaultName7,
+ FormatKey7,
+ FormatType7,
+ FormatUsage7,
+ Formatindex7,
+ defaultFormatElement7,
+ FormatCode8,
+ FormatDefaultName8,
+ FormatKey8,
+ FormatType8,
+ FormatUsage8,
+ Formatindex8,
+ defaultFormatElement8,
+ FormatCode9,
+ FormatDefaultName9,
+ FormatKey9,
+ FormatType9,
+ FormatUsage9,
+ Formatindex9,
+ defaultFormatElement9,
+ FormatCode10,
+ FormatDefaultName10,
+ FormatKey10,
+ FormatType10,
+ FormatUsage10,
+ Formatindex10,
+ defaultFormatElement10,
+ FormatCode11,
+ FormatDefaultName11,
+ FormatKey11,
+ FormatType11,
+ FormatUsage11,
+ Formatindex11,
+ defaultFormatElement11,
+ FormatCode12,
+ FormatDefaultName12,
+ FormatKey12,
+ FormatType12,
+ FormatUsage12,
+ Formatindex12,
+ defaultFormatElement12,
+ FormatCode13,
+ FormatDefaultName13,
+ FormatKey13,
+ FormatType13,
+ FormatUsage13,
+ Formatindex13,
+ defaultFormatElement13,
+ FormatCode14,
+ FormatDefaultName14,
+ FormatKey14,
+ FormatType14,
+ FormatUsage14,
+ Formatindex14,
+ defaultFormatElement14,
+ FormatCode15,
+ FormatDefaultName15,
+ FormatKey15,
+ FormatType15,
+ FormatUsage15,
+ Formatindex15,
+ defaultFormatElement15,
+ FormatCode16,
+ FormatDefaultName16,
+ FormatKey16,
+ FormatType16,
+ FormatUsage16,
+ Formatindex16,
+ defaultFormatElement16,
+ FormatCode17,
+ FormatDefaultName17,
+ FormatKey17,
+ FormatType17,
+ FormatUsage17,
+ Formatindex17,
+ defaultFormatElement17,
+ FormatCode18,
+ FormatDefaultName18,
+ FormatKey18,
+ FormatType18,
+ FormatUsage18,
+ Formatindex18,
+ defaultFormatElement18,
+ FormatCode19,
+ FormatDefaultName19,
+ FormatKey19,
+ FormatType19,
+ FormatUsage19,
+ Formatindex19,
+ defaultFormatElement19,
+ FormatCode20,
+ FormatDefaultName20,
+ FormatKey20,
+ FormatType20,
+ FormatUsage20,
+ Formatindex20,
+ defaultFormatElement20,
+ FormatCode21,
+ FormatDefaultName21,
+ FormatKey21,
+ FormatType21,
+ FormatUsage21,
+ Formatindex21,
+ defaultFormatElement21,
+ FormatCode22,
+ FormatDefaultName22,
+ FormatKey22,
+ FormatType22,
+ FormatUsage22,
+ Formatindex22,
+ defaultFormatElement22,
+ FormatCode23,
+ FormatDefaultName23,
+ FormatKey23,
+ FormatType23,
+ FormatUsage23,
+ Formatindex23,
+ defaultFormatElement23,
+ FormatCode24,
+ FormatDefaultName24,
+ FormatKey24,
+ FormatType24,
+ FormatUsage24,
+ Formatindex24,
+ defaultFormatElement24,
+ FormatCode25,
+ FormatDefaultName25,
+ FormatKey25,
+ FormatType25,
+ FormatUsage25,
+ Formatindex25,
+ defaultFormatElement25,
+ FormatCode26,
+ FormatDefaultName26,
+ FormatKey26,
+ FormatType26,
+ FormatUsage26,
+ Formatindex26,
+ defaultFormatElement26,
+ FormatCode27,
+ FormatDefaultName27,
+ FormatKey27,
+ FormatType27,
+ FormatUsage27,
+ Formatindex27,
+ defaultFormatElement27,
+ FormatCode28,
+ FormatDefaultName28,
+ FormatKey28,
+ FormatType28,
+ FormatUsage28,
+ Formatindex28,
+ defaultFormatElement28,
+ FormatCode29,
+ FormatDefaultName29,
+ FormatKey29,
+ FormatType29,
+ FormatUsage29,
+ Formatindex29,
+ defaultFormatElement29,
+ FormatCode30,
+ FormatDefaultName30,
+ FormatKey30,
+ FormatType30,
+ FormatUsage30,
+ Formatindex30,
+ defaultFormatElement30,
+ FormatCode31,
+ FormatDefaultName31,
+ FormatKey31,
+ FormatType31,
+ FormatUsage31,
+ Formatindex31,
+ defaultFormatElement31,
+ FormatCode32,
+ FormatDefaultName32,
+ FormatKey32,
+ FormatType32,
+ FormatUsage32,
+ Formatindex32,
+ defaultFormatElement32,
+ FormatCode33,
+ FormatDefaultName33,
+ FormatKey33,
+ FormatType33,
+ FormatUsage33,
+ Formatindex33,
+ defaultFormatElement33,
+ FormatCode34,
+ FormatDefaultName34,
+ FormatKey34,
+ FormatType34,
+ FormatUsage34,
+ Formatindex34,
+ defaultFormatElement34,
+ FormatCode35,
+ FormatDefaultName35,
+ FormatKey35,
+ FormatType35,
+ FormatUsage35,
+ Formatindex35,
+ defaultFormatElement35,
+ FormatCode36,
+ FormatDefaultName36,
+ FormatKey36,
+ FormatType36,
+ FormatUsage36,
+ Formatindex36,
+ defaultFormatElement36,
+ FormatCode37,
+ FormatDefaultName37,
+ FormatKey37,
+ FormatType37,
+ FormatUsage37,
+ Formatindex37,
+ defaultFormatElement37,
+ FormatCode38,
+ FormatDefaultName38,
+ FormatKey38,
+ FormatType38,
+ FormatUsage38,
+ Formatindex38,
+ defaultFormatElement38,
+ FormatCode39,
+ FormatDefaultName39,
+ FormatKey39,
+ FormatType39,
+ FormatUsage39,
+ Formatindex39,
+ defaultFormatElement39,
+ FormatCode40,
+ FormatDefaultName40,
+ FormatKey40,
+ FormatType40,
+ FormatUsage40,
+ Formatindex40,
+ defaultFormatElement40,
+ FormatCode41,
+ FormatDefaultName41,
+ FormatKey41,
+ FormatType41,
+ FormatUsage41,
+ Formatindex41,
+ defaultFormatElement41,
+ FormatCode42,
+ FormatDefaultName42,
+ FormatKey42,
+ FormatType42,
+ FormatUsage42,
+ Formatindex42,
+ defaultFormatElement42,
+ FormatCode43,
+ FormatDefaultName43,
+ FormatKey43,
+ FormatType43,
+ FormatUsage43,
+ Formatindex43,
+ defaultFormatElement43,
+ FormatCode44,
+ FormatDefaultName44,
+ FormatKey44,
+ FormatType44,
+ FormatUsage44,
+ Formatindex44,
+ defaultFormatElement44,
+ FormatCode45,
+ FormatDefaultName45,
+ FormatKey45,
+ FormatType45,
+ FormatUsage45,
+ Formatindex45,
+ defaultFormatElement45,
+ FormatCode46,
+ FormatDefaultName46,
+ FormatKey46,
+ FormatType46,
+ FormatUsage46,
+ Formatindex46,
+ defaultFormatElement46,
+ FormatCode47,
+ FormatDefaultName47,
+ FormatKey47,
+ FormatType47,
+ FormatUsage47,
+ Formatindex47,
+ defaultFormatElement47,
+ FormatCode48,
+ FormatDefaultName48,
+ FormatKey48,
+ FormatType48,
+ FormatUsage48,
+ Formatindex48,
+ defaultFormatElement48,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_ZA(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ count = FormatElementsCount0;
+ from = replaceFrom0;
+ to = replaceTo0;
+ return (sal_Unicode**)FormatElementsArray0;
+}
+static const sal_Unicode DateAcceptancePattern0[] = {0x59, 0x2f, 0x4d, 0x2f, 0x44, 0x0};
+static const sal_Unicode DateAcceptancePattern1[] = {0x4d, 0x2f, 0x44, 0x0};
+static const sal_Int16 DateAcceptancePatternsCount = 2;
+static const sal_Unicode* DateAcceptancePatternsArray[] = {
+ DateAcceptancePattern0,
+ DateAcceptancePattern1,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_ZA(sal_Int16& count)
+{
+ count = DateAcceptancePatternsCount;
+ return (sal_Unicode**)DateAcceptancePatternsArray;
+}
+extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_ZA(sal_Int16& count)
+{
+ return getCollatorImplementation_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_ZA(sal_Int16& count)
+{
+ return getCollationOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_ZA(sal_Int16& count)
+{
+ return getSearchOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_ZA(sal_Int16& count)
+{
+ return getIndexAlgorithm_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_ZA(sal_Int16& count)
+{
+ return getUnicodeScripts_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_ZA(sal_Int16& count)
+{
+ return getFollowPageWords_en_US(count);
+}
+static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode defaultCalendar0[] = {1};
+static const sal_Unicode dayID00[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode dayDefaultAbbrvName00[] = {0x53, 0x75, 0x6e, 0x0};
+static const sal_Unicode dayDefaultFullName00[] = {0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName00[] = {0x53, 0x0};
+static const sal_Unicode dayID01[] = {0x6d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode dayDefaultAbbrvName01[] = {0x4d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode dayDefaultFullName01[] = {0x4d, 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName01[] = {0x4d, 0x0};
+static const sal_Unicode dayID02[] = {0x74, 0x75, 0x65, 0x0};
+static const sal_Unicode dayDefaultAbbrvName02[] = {0x54, 0x75, 0x65, 0x0};
+static const sal_Unicode dayDefaultFullName02[] = {0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName02[] = {0x54, 0x0};
+static const sal_Unicode dayID03[] = {0x77, 0x65, 0x64, 0x0};
+static const sal_Unicode dayDefaultAbbrvName03[] = {0x57, 0x65, 0x64, 0x0};
+static const sal_Unicode dayDefaultFullName03[] = {0x57, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName03[] = {0x57, 0x0};
+static const sal_Unicode dayID04[] = {0x74, 0x68, 0x75, 0x0};
+static const sal_Unicode dayDefaultAbbrvName04[] = {0x54, 0x68, 0x75, 0x0};
+static const sal_Unicode dayDefaultFullName04[] = {0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName04[] = {0x54, 0x0};
+static const sal_Unicode dayID05[] = {0x66, 0x72, 0x69, 0x0};
+static const sal_Unicode dayDefaultAbbrvName05[] = {0x46, 0x72, 0x69, 0x0};
+static const sal_Unicode dayDefaultFullName05[] = {0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName05[] = {0x46, 0x0};
+static const sal_Unicode dayID06[] = {0x73, 0x61, 0x74, 0x0};
+static const sal_Unicode dayDefaultAbbrvName06[] = {0x53, 0x61, 0x74, 0x0};
+static const sal_Unicode dayDefaultFullName06[] = {0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName06[] = {0x53, 0x0};
+static const sal_Unicode monthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode monthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode monthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode monthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode monthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode monthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode monthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode monthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode monthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode monthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode monthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode monthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode monthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode monthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode monthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode monthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode monthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode monthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode monthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode monthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode monthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode monthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode monthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode monthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode monthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode monthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode monthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode monthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode monthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode monthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode monthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode monthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode monthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode monthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode genitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode genitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode genitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode genitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode genitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode genitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode genitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode genitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode genitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode partitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode partitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode partitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode partitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode partitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode partitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode partitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode partitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode partitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode eraID00[] = {0x62, 0x63, 0x0};
+
+static const sal_Unicode eraDefaultAbbrvName00[] = {0x42, 0x43, 0x0};
+static const sal_Unicode eraDefaultFullName00[] = {0x42, 0x43, 0x0};
+static const sal_Unicode eraID01[] = {0x61, 0x64, 0x0};
+
+static const sal_Unicode eraDefaultAbbrvName01[] = {0x41, 0x44, 0x0};
+static const sal_Unicode eraDefaultFullName01[] = {0x41, 0x44, 0x0};
+static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode minimalDaysInFirstWeek0[] = {1};
+static const sal_Int16 calendarsCount = 1;
+
+static const sal_Unicode nbOfDays[] = {7};
+static const sal_Unicode nbOfMonths[] = {12};
+static const sal_Unicode nbOfGenitiveMonths[] = {12};
+static const sal_Unicode nbOfPartitiveMonths[] = {12};
+static const sal_Unicode nbOfEras[] = {2};
+static const sal_Unicode* calendars[] = {
+ nbOfDays,
+ nbOfMonths,
+ nbOfGenitiveMonths,
+ nbOfPartitiveMonths,
+ nbOfEras,
+ calendarID0,
+ defaultCalendar0,
+ dayID00,
+ dayDefaultAbbrvName00,
+ dayDefaultFullName00,
+ dayDefaultNarrowName00,
+ dayID01,
+ dayDefaultAbbrvName01,
+ dayDefaultFullName01,
+ dayDefaultNarrowName01,
+ dayID02,
+ dayDefaultAbbrvName02,
+ dayDefaultFullName02,
+ dayDefaultNarrowName02,
+ dayID03,
+ dayDefaultAbbrvName03,
+ dayDefaultFullName03,
+ dayDefaultNarrowName03,
+ dayID04,
+ dayDefaultAbbrvName04,
+ dayDefaultFullName04,
+ dayDefaultNarrowName04,
+ dayID05,
+ dayDefaultAbbrvName05,
+ dayDefaultFullName05,
+ dayDefaultNarrowName05,
+ dayID06,
+ dayDefaultAbbrvName06,
+ dayDefaultFullName06,
+ dayDefaultNarrowName06,
+ monthID00,
+ monthDefaultAbbrvName00,
+ monthDefaultFullName00,
+ monthDefaultNarrowName00,
+ monthID01,
+ monthDefaultAbbrvName01,
+ monthDefaultFullName01,
+ monthDefaultNarrowName01,
+ monthID02,
+ monthDefaultAbbrvName02,
+ monthDefaultFullName02,
+ monthDefaultNarrowName02,
+ monthID03,
+ monthDefaultAbbrvName03,
+ monthDefaultFullName03,
+ monthDefaultNarrowName03,
+ monthID04,
+ monthDefaultAbbrvName04,
+ monthDefaultFullName04,
+ monthDefaultNarrowName04,
+ monthID05,
+ monthDefaultAbbrvName05,
+ monthDefaultFullName05,
+ monthDefaultNarrowName05,
+ monthID06,
+ monthDefaultAbbrvName06,
+ monthDefaultFullName06,
+ monthDefaultNarrowName06,
+ monthID07,
+ monthDefaultAbbrvName07,
+ monthDefaultFullName07,
+ monthDefaultNarrowName07,
+ monthID08,
+ monthDefaultAbbrvName08,
+ monthDefaultFullName08,
+ monthDefaultNarrowName08,
+ monthID09,
+ monthDefaultAbbrvName09,
+ monthDefaultFullName09,
+ monthDefaultNarrowName09,
+ monthID010,
+ monthDefaultAbbrvName010,
+ monthDefaultFullName010,
+ monthDefaultNarrowName010,
+ monthID011,
+ monthDefaultAbbrvName011,
+ monthDefaultFullName011,
+ monthDefaultNarrowName011,
+ genitiveMonthID00,
+ genitiveMonthDefaultAbbrvName00,
+ genitiveMonthDefaultFullName00,
+ genitiveMonthDefaultNarrowName00,
+ genitiveMonthID01,
+ genitiveMonthDefaultAbbrvName01,
+ genitiveMonthDefaultFullName01,
+ genitiveMonthDefaultNarrowName01,
+ genitiveMonthID02,
+ genitiveMonthDefaultAbbrvName02,
+ genitiveMonthDefaultFullName02,
+ genitiveMonthDefaultNarrowName02,
+ genitiveMonthID03,
+ genitiveMonthDefaultAbbrvName03,
+ genitiveMonthDefaultFullName03,
+ genitiveMonthDefaultNarrowName03,
+ genitiveMonthID04,
+ genitiveMonthDefaultAbbrvName04,
+ genitiveMonthDefaultFullName04,
+ genitiveMonthDefaultNarrowName04,
+ genitiveMonthID05,
+ genitiveMonthDefaultAbbrvName05,
+ genitiveMonthDefaultFullName05,
+ genitiveMonthDefaultNarrowName05,
+ genitiveMonthID06,
+ genitiveMonthDefaultAbbrvName06,
+ genitiveMonthDefaultFullName06,
+ genitiveMonthDefaultNarrowName06,
+ genitiveMonthID07,
+ genitiveMonthDefaultAbbrvName07,
+ genitiveMonthDefaultFullName07,
+ genitiveMonthDefaultNarrowName07,
+ genitiveMonthID08,
+ genitiveMonthDefaultAbbrvName08,
+ genitiveMonthDefaultFullName08,
+ genitiveMonthDefaultNarrowName08,
+ genitiveMonthID09,
+ genitiveMonthDefaultAbbrvName09,
+ genitiveMonthDefaultFullName09,
+ genitiveMonthDefaultNarrowName09,
+ genitiveMonthID010,
+ genitiveMonthDefaultAbbrvName010,
+ genitiveMonthDefaultFullName010,
+ genitiveMonthDefaultNarrowName010,
+ genitiveMonthID011,
+ genitiveMonthDefaultAbbrvName011,
+ genitiveMonthDefaultFullName011,
+ genitiveMonthDefaultNarrowName011,
+ partitiveMonthID00,
+ partitiveMonthDefaultAbbrvName00,
+ partitiveMonthDefaultFullName00,
+ partitiveMonthDefaultNarrowName00,
+ partitiveMonthID01,
+ partitiveMonthDefaultAbbrvName01,
+ partitiveMonthDefaultFullName01,
+ partitiveMonthDefaultNarrowName01,
+ partitiveMonthID02,
+ partitiveMonthDefaultAbbrvName02,
+ partitiveMonthDefaultFullName02,
+ partitiveMonthDefaultNarrowName02,
+ partitiveMonthID03,
+ partitiveMonthDefaultAbbrvName03,
+ partitiveMonthDefaultFullName03,
+ partitiveMonthDefaultNarrowName03,
+ partitiveMonthID04,
+ partitiveMonthDefaultAbbrvName04,
+ partitiveMonthDefaultFullName04,
+ partitiveMonthDefaultNarrowName04,
+ partitiveMonthID05,
+ partitiveMonthDefaultAbbrvName05,
+ partitiveMonthDefaultFullName05,
+ partitiveMonthDefaultNarrowName05,
+ partitiveMonthID06,
+ partitiveMonthDefaultAbbrvName06,
+ partitiveMonthDefaultFullName06,
+ partitiveMonthDefaultNarrowName06,
+ partitiveMonthID07,
+ partitiveMonthDefaultAbbrvName07,
+ partitiveMonthDefaultFullName07,
+ partitiveMonthDefaultNarrowName07,
+ partitiveMonthID08,
+ partitiveMonthDefaultAbbrvName08,
+ partitiveMonthDefaultFullName08,
+ partitiveMonthDefaultNarrowName08,
+ partitiveMonthID09,
+ partitiveMonthDefaultAbbrvName09,
+ partitiveMonthDefaultFullName09,
+ partitiveMonthDefaultNarrowName09,
+ partitiveMonthID010,
+ partitiveMonthDefaultAbbrvName010,
+ partitiveMonthDefaultFullName010,
+ partitiveMonthDefaultNarrowName010,
+ partitiveMonthID011,
+ partitiveMonthDefaultAbbrvName011,
+ partitiveMonthDefaultFullName011,
+ partitiveMonthDefaultNarrowName011,
+ eraID00,
+ eraDefaultAbbrvName00,
+ eraDefaultFullName00,
+ eraID01,
+ eraDefaultAbbrvName01,
+ eraDefaultFullName01,
+ startDayOfWeek0,
+ minimalDaysInFirstWeek0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_ZA(sal_Int16& count)
+{
+ count = calendarsCount;
+ return (sal_Unicode**)calendars;
+}
+static const sal_Unicode defaultCurrency0[] = {1};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1};
+static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0};
+static const sal_Unicode currencyID0[] = {0x5a, 0x41, 0x52, 0x0};
+static const sal_Unicode currencySymbol0[] = {0x52, 0x0};
+static const sal_Unicode bankSymbol0[] = {0x5a, 0x41, 0x52, 0x0};
+static const sal_Unicode currencyName0[] = {0x52, 0x61, 0x6e, 0x64, 0x0};
+static const sal_Unicode currencyDecimalPlaces0[] = {2};
+
+static const sal_Int16 currencyCount = 1;
+
+static const sal_Unicode* currencies[] = {
+ currencyID0,
+ currencySymbol0,
+ bankSymbol0,
+ currencyName0,
+ defaultCurrency0,
+ defaultCurrencyUsedInCompatibleFormatCodes0,
+ currencyDecimalPlaces0,
+ defaultCurrencyLegacyOnly0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_ZA(sal_Int16& count)
+{
+ count = currencyCount;
+ return (sal_Unicode**)currencies;
+}
+extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_ZA(sal_Int16& count)
+{
+ return getTransliterations_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_ZA(sal_Int16& count)
+{
+ return getForbiddenCharacters_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_ZA(sal_Int16& count)
+{
+ return getBreakIteratorRules_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_ZA(sal_Int16& count)
+{
+ return getReservedWords_en_US(count);
+}
+// ---> ContinuousNumbering
+extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_ZA(sal_Int16& nStyles, sal_Int16& nAttributes)
+{
+ return getContinuousNumberingLevels_en_US(nStyles, nAttributes);
+}
+// ---> OutlineNumbering
+extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_ZA(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)
+{
+ return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes);
+}
+} // extern "C"
+
diff --git a/vcl/workben/localestub/localedata_en_ZM.cxx b/vcl/workben/localestub/localedata_en_ZM.cxx
new file mode 100644
index 000000000..0e61cd7bf
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_ZM.cxx
@@ -0,0 +1,142 @@
+#include <sal/types.h>
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = { 0x65, 0x6e, 0x0 };
+static const sal_Unicode langDefaultName[] = { 0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0 };
+static const sal_Unicode countryID[] = { 0x5a, 0x4d, 0x0 };
+static const sal_Unicode countryDefaultName[] = { 0x5a, 0x61, 0x6d, 0x62, 0x69, 0x61, 0x0 };
+static const sal_Unicode Variant[] = { 0x0 };
+
+static const sal_Unicode* LCInfoArray[]
+ = { langID, langDefaultName, countryID, countryDefaultName, Variant };
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getLCInfo_en_ZM(sal_Int16& count)
+{
+ count = SAL_N_ELEMENTS(LCInfoArray);
+ return (sal_Unicode**)LCInfoArray;
+}
+extern sal_Unicode** SAL_CALL getLocaleItem_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getLocaleItem_en_ZM(sal_Int16& count)
+{
+ return getLocaleItem_en_GB(count);
+}
+static const sal_Unicode replaceTo0[]
+ = { 0x5b, 0x24, 0x4b, 0x2d, 0x41, 0x30, 0x30, 0x39, 0x5d, 0x0 };
+extern sal_Unicode const* const* SAL_CALL getAllFormats0_en_GB(sal_Int16& count,
+ const sal_Unicode*& from,
+ const sal_Unicode*& to);
+SAL_DLLPUBLIC_EXPORT sal_Unicode const* const* SAL_CALL
+getAllFormats0_en_ZM(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ to = replaceTo0;
+ const sal_Unicode* tmp;
+ return getAllFormats0_en_GB(count, from, tmp);
+}
+extern sal_Unicode** SAL_CALL getDateAcceptancePatterns_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getDateAcceptancePatterns_en_ZM(sal_Int16& count)
+{
+ return getDateAcceptancePatterns_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getCollatorImplementation_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getCollatorImplementation_en_ZM(sal_Int16& count)
+{
+ return getCollatorImplementation_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getCollationOptions_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getCollationOptions_en_ZM(sal_Int16& count)
+{
+ return getCollationOptions_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getSearchOptions_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getSearchOptions_en_ZM(sal_Int16& count)
+{
+ return getSearchOptions_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getIndexAlgorithm_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getIndexAlgorithm_en_ZM(sal_Int16& count)
+{
+ return getIndexAlgorithm_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getUnicodeScripts_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getUnicodeScripts_en_ZM(sal_Int16& count)
+{
+ return getUnicodeScripts_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getFollowPageWords_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getFollowPageWords_en_ZM(sal_Int16& count)
+{
+ return getFollowPageWords_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getAllCalendars_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getAllCalendars_en_ZM(sal_Int16& count)
+{
+ return getAllCalendars_en_GB(count);
+}
+static const sal_Unicode defaultCurrency0[] = { 1 };
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = { 1 };
+static const sal_Unicode defaultCurrencyLegacyOnly0[] = { 0 };
+static const sal_Unicode currencyID0[] = { 0x5a, 0x4d, 0x57, 0x0 };
+static const sal_Unicode currencySymbol0[] = { 0x4b, 0x0 };
+static const sal_Unicode bankSymbol0[] = { 0x5a, 0x4d, 0x57, 0x0 };
+static const sal_Unicode currencyName0[] = { 0x4b, 0x77, 0x61, 0x63, 0x68, 0x61, 0x0 };
+static const sal_Unicode currencyDecimalPlaces0[] = { 2 };
+
+static const sal_Int16 currencyCount = 1;
+
+static const sal_Unicode* currencies[] = {
+ currencyID0,
+ currencySymbol0,
+ bankSymbol0,
+ currencyName0,
+ defaultCurrency0,
+ defaultCurrencyUsedInCompatibleFormatCodes0,
+ currencyDecimalPlaces0,
+ defaultCurrencyLegacyOnly0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getAllCurrencies_en_ZM(sal_Int16& count)
+{
+ count = currencyCount;
+ return (sal_Unicode**)currencies;
+}
+extern sal_Unicode** SAL_CALL getTransliterations_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getTransliterations_en_ZM(sal_Int16& count)
+{
+ return getTransliterations_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getForbiddenCharacters_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getForbiddenCharacters_en_ZM(sal_Int16& count)
+{
+ return getForbiddenCharacters_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getBreakIteratorRules_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getBreakIteratorRules_en_ZM(sal_Int16& count)
+{
+ return getBreakIteratorRules_en_GB(count);
+}
+extern sal_Unicode** SAL_CALL getReservedWords_en_GB(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode** SAL_CALL getReservedWords_en_ZM(sal_Int16& count)
+{
+ return getReservedWords_en_GB(count);
+}
+// ---> ContinuousNumbering
+extern const sal_Unicode*** SAL_CALL getContinuousNumberingLevels_en_GB(sal_Int16& nStyles,
+ sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode*** SAL_CALL
+getContinuousNumberingLevels_en_ZM(sal_Int16& nStyles, sal_Int16& nAttributes)
+{
+ return getContinuousNumberingLevels_en_GB(nStyles, nAttributes);
+}
+// ---> OutlineNumbering
+extern const sal_Unicode**** SAL_CALL getOutlineNumberingLevels_en_GB(sal_Int16& nStyles,
+ sal_Int16& nLevels,
+ sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode**** SAL_CALL
+getOutlineNumberingLevels_en_ZM(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)
+{
+ return getOutlineNumberingLevels_en_GB(nStyles, nLevels, nAttributes);
+}
+} // extern "C"
diff --git a/vcl/workben/localestub/localedata_en_ZW.cxx b/vcl/workben/localestub/localedata_en_ZW.cxx
new file mode 100644
index 000000000..be6797418
--- /dev/null
+++ b/vcl/workben/localestub/localedata_en_ZW.cxx
@@ -0,0 +1,563 @@
+#include <sal/types.h>
+
+
+#include <stdio.h>
+
+extern "C" {
+
+static const sal_Unicode langID[] = {0x65, 0x6e, 0x0};
+static const sal_Unicode langDefaultName[] = {0x45, 0x6e, 0x67, 0x6c, 0x69, 0x73, 0x68, 0x0};
+static const sal_Unicode countryID[] = {0x5a, 0x57, 0x0};
+static const sal_Unicode countryDefaultName[] = {0x5a, 0x69, 0x6d, 0x62, 0x61, 0x62, 0x77, 0x65, 0x0};
+static const sal_Unicode Variant[] = {0x0};
+
+static const sal_Unicode* LCInfoArray[] = {
+ langID,
+ langDefaultName,
+ countryID,
+ countryDefaultName,
+ Variant
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLCInfo_en_ZW(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCInfoArray;
+}
+
+
+static const sal_Unicode LC_CTYPE_Unoid[] = {0x0};
+static const sal_Unicode dateSeparator[] = {0x2f, 0x0};
+static const sal_Unicode thousandSeparator[] = {0x2c, 0x0};
+static const sal_Unicode decimalSeparator[] = {0x2e, 0x0};
+static const sal_Unicode timeSeparator[] = {0x3a, 0x0};
+static const sal_Unicode time100SecSeparator[] = {0x2e, 0x0};
+static const sal_Unicode listSeparator[] = {0x3b, 0x0};
+static const sal_Unicode LongDateDayOfWeekSeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateDaySeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateMonthSeparator[] = {0x20, 0x0};
+static const sal_Unicode LongDateYearSeparator[] = {0x20, 0x0};
+static const sal_Unicode quotationStart[] = {0x2018, 0x0};
+static const sal_Unicode quotationEnd[] = {0x2019, 0x0};
+static const sal_Unicode doubleQuotationStart[] = {0x201c, 0x0};
+static const sal_Unicode doubleQuotationEnd[] = {0x201d, 0x0};
+static const sal_Unicode timeAM[] = {0x41, 0x4d, 0x0};
+static const sal_Unicode timePM[] = {0x50, 0x4d, 0x0};
+static const sal_Unicode measurementSystem[] = {0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x0};
+
+static const sal_Unicode* LCType[] = {
+ LC_CTYPE_Unoid,
+ dateSeparator,
+ thousandSeparator,
+ decimalSeparator,
+ timeSeparator,
+ time100SecSeparator,
+ listSeparator,
+ quotationStart,
+ quotationEnd,
+ doubleQuotationStart,
+ doubleQuotationEnd,
+ timeAM,
+ timePM,
+ measurementSystem,
+ LongDateDayOfWeekSeparator,
+ LongDateDaySeparator,
+ LongDateMonthSeparator,
+ LongDateYearSeparator
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getLocaleItem_en_ZW(sal_Int16& count)
+{
+ count = 0;
+ return (sal_Unicode**)LCType;
+}
+static const sal_Unicode replaceTo0[] = {0x5b, 0x24, 0x5a, 0x24, 0x2d, 0x33, 0x30, 0x30, 0x39, 0x5d, 0x0};
+extern sal_Unicode const * const * SAL_CALL getAllFormats0_en_US(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to);
+SAL_DLLPUBLIC_EXPORT sal_Unicode const * const * SAL_CALL getAllFormats0_en_ZW(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)
+{
+ to = replaceTo0;
+ const sal_Unicode* tmp;
+ return getAllFormats0_en_US(count, from, tmp);
+}
+extern sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getDateAcceptancePatterns_en_ZW(sal_Int16& count)
+{
+ return getDateAcceptancePatterns_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getCollatorImplementation_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollatorImplementation_en_ZW(sal_Int16& count)
+{
+ return getCollatorImplementation_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getCollationOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getCollationOptions_en_ZW(sal_Int16& count)
+{
+ return getCollationOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getSearchOptions_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getSearchOptions_en_ZW(sal_Int16& count)
+{
+ return getSearchOptions_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getIndexAlgorithm_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getIndexAlgorithm_en_ZW(sal_Int16& count)
+{
+ return getIndexAlgorithm_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getUnicodeScripts_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getUnicodeScripts_en_ZW(sal_Int16& count)
+{
+ return getUnicodeScripts_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getFollowPageWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getFollowPageWords_en_ZW(sal_Int16& count)
+{
+ return getFollowPageWords_en_US(count);
+}
+static const sal_Unicode calendarID0[] = {0x67, 0x72, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x61, 0x6e, 0x0};
+static const sal_Unicode defaultCalendar0[] = {1};
+static const sal_Unicode dayID00[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode dayDefaultAbbrvName00[] = {0x53, 0x75, 0x6e, 0x0};
+static const sal_Unicode dayDefaultFullName00[] = {0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName00[] = {0x53, 0x0};
+static const sal_Unicode dayID01[] = {0x6d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode dayDefaultAbbrvName01[] = {0x4d, 0x6f, 0x6e, 0x0};
+static const sal_Unicode dayDefaultFullName01[] = {0x4d, 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName01[] = {0x4d, 0x0};
+static const sal_Unicode dayID02[] = {0x74, 0x75, 0x65, 0x0};
+static const sal_Unicode dayDefaultAbbrvName02[] = {0x54, 0x75, 0x65, 0x0};
+static const sal_Unicode dayDefaultFullName02[] = {0x54, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName02[] = {0x54, 0x0};
+static const sal_Unicode dayID03[] = {0x77, 0x65, 0x64, 0x0};
+static const sal_Unicode dayDefaultAbbrvName03[] = {0x57, 0x65, 0x64, 0x0};
+static const sal_Unicode dayDefaultFullName03[] = {0x57, 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName03[] = {0x57, 0x0};
+static const sal_Unicode dayID04[] = {0x74, 0x68, 0x75, 0x0};
+static const sal_Unicode dayDefaultAbbrvName04[] = {0x54, 0x68, 0x75, 0x0};
+static const sal_Unicode dayDefaultFullName04[] = {0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName04[] = {0x54, 0x0};
+static const sal_Unicode dayID05[] = {0x66, 0x72, 0x69, 0x0};
+static const sal_Unicode dayDefaultAbbrvName05[] = {0x46, 0x72, 0x69, 0x0};
+static const sal_Unicode dayDefaultFullName05[] = {0x46, 0x72, 0x69, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName05[] = {0x46, 0x0};
+static const sal_Unicode dayID06[] = {0x73, 0x61, 0x74, 0x0};
+static const sal_Unicode dayDefaultAbbrvName06[] = {0x53, 0x61, 0x74, 0x0};
+static const sal_Unicode dayDefaultFullName06[] = {0x53, 0x61, 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x0};
+static const sal_Unicode dayDefaultNarrowName06[] = {0x53, 0x0};
+static const sal_Unicode monthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode monthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode monthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode monthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode monthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode monthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode monthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode monthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode monthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode monthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode monthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode monthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode monthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode monthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode monthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode monthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode monthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode monthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode monthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode monthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode monthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode monthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode monthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode monthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode monthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode monthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode monthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode monthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode monthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode monthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode monthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode monthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode monthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode monthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode monthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode monthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode monthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode monthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode genitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode genitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode genitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode genitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode genitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode genitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode genitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode genitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode genitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode genitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode genitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode genitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode genitiveMonthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode partitiveMonthID00[] = {0x6a, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName00[] = {0x4a, 0x61, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName00[] = {0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName00[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID01[] = {0x66, 0x65, 0x62, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName01[] = {0x46, 0x65, 0x62, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName01[] = {0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName01[] = {0x46, 0x0};
+static const sal_Unicode partitiveMonthID02[] = {0x6d, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName02[] = {0x4d, 0x61, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName02[] = {0x4d, 0x61, 0x72, 0x63, 0x68, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName02[] = {0x4d, 0x0};
+static const sal_Unicode partitiveMonthID03[] = {0x61, 0x70, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName03[] = {0x41, 0x70, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName03[] = {0x41, 0x70, 0x72, 0x69, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName03[] = {0x41, 0x0};
+static const sal_Unicode partitiveMonthID04[] = {0x6d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName04[] = {0x4d, 0x61, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName04[] = {0x4d, 0x0};
+static const sal_Unicode partitiveMonthID05[] = {0x6a, 0x75, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName05[] = {0x4a, 0x75, 0x6e, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName05[] = {0x4a, 0x75, 0x6e, 0x65, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName05[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID06[] = {0x6a, 0x75, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName06[] = {0x4a, 0x75, 0x6c, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName06[] = {0x4a, 0x75, 0x6c, 0x79, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName06[] = {0x4a, 0x0};
+static const sal_Unicode partitiveMonthID07[] = {0x61, 0x75, 0x67, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName07[] = {0x41, 0x75, 0x67, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName07[] = {0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName07[] = {0x41, 0x0};
+static const sal_Unicode partitiveMonthID08[] = {0x73, 0x65, 0x70, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName08[] = {0x53, 0x65, 0x70, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName08[] = {0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName08[] = {0x53, 0x0};
+static const sal_Unicode partitiveMonthID09[] = {0x6f, 0x63, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName09[] = {0x4f, 0x63, 0x74, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName09[] = {0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName09[] = {0x4f, 0x0};
+static const sal_Unicode partitiveMonthID010[] = {0x6e, 0x6f, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName010[] = {0x4e, 0x6f, 0x76, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName010[] = {0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName010[] = {0x4e, 0x0};
+static const sal_Unicode partitiveMonthID011[] = {0x64, 0x65, 0x63, 0x0};
+static const sal_Unicode partitiveMonthDefaultAbbrvName011[] = {0x44, 0x65, 0x63, 0x0};
+static const sal_Unicode partitiveMonthDefaultFullName011[] = {0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0};
+static const sal_Unicode partitiveMonthDefaultNarrowName011[] = {0x44, 0x0};
+static const sal_Unicode eraID00[] = {0x62, 0x63, 0x0};
+
+static const sal_Unicode eraDefaultAbbrvName00[] = {0x42, 0x43, 0x0};
+static const sal_Unicode eraDefaultFullName00[] = {0x42, 0x43, 0x0};
+static const sal_Unicode eraID01[] = {0x61, 0x64, 0x0};
+
+static const sal_Unicode eraDefaultAbbrvName01[] = {0x41, 0x44, 0x0};
+static const sal_Unicode eraDefaultFullName01[] = {0x41, 0x44, 0x0};
+static const sal_Unicode startDayOfWeek0[] = {0x73, 0x75, 0x6e, 0x0};
+static const sal_Unicode minimalDaysInFirstWeek0[] = {1};
+static const sal_Int16 calendarsCount = 1;
+
+static const sal_Unicode nbOfDays[] = {7};
+static const sal_Unicode nbOfMonths[] = {12};
+static const sal_Unicode nbOfGenitiveMonths[] = {12};
+static const sal_Unicode nbOfPartitiveMonths[] = {12};
+static const sal_Unicode nbOfEras[] = {2};
+static const sal_Unicode* calendars[] = {
+ nbOfDays,
+ nbOfMonths,
+ nbOfGenitiveMonths,
+ nbOfPartitiveMonths,
+ nbOfEras,
+ calendarID0,
+ defaultCalendar0,
+ dayID00,
+ dayDefaultAbbrvName00,
+ dayDefaultFullName00,
+ dayDefaultNarrowName00,
+ dayID01,
+ dayDefaultAbbrvName01,
+ dayDefaultFullName01,
+ dayDefaultNarrowName01,
+ dayID02,
+ dayDefaultAbbrvName02,
+ dayDefaultFullName02,
+ dayDefaultNarrowName02,
+ dayID03,
+ dayDefaultAbbrvName03,
+ dayDefaultFullName03,
+ dayDefaultNarrowName03,
+ dayID04,
+ dayDefaultAbbrvName04,
+ dayDefaultFullName04,
+ dayDefaultNarrowName04,
+ dayID05,
+ dayDefaultAbbrvName05,
+ dayDefaultFullName05,
+ dayDefaultNarrowName05,
+ dayID06,
+ dayDefaultAbbrvName06,
+ dayDefaultFullName06,
+ dayDefaultNarrowName06,
+ monthID00,
+ monthDefaultAbbrvName00,
+ monthDefaultFullName00,
+ monthDefaultNarrowName00,
+ monthID01,
+ monthDefaultAbbrvName01,
+ monthDefaultFullName01,
+ monthDefaultNarrowName01,
+ monthID02,
+ monthDefaultAbbrvName02,
+ monthDefaultFullName02,
+ monthDefaultNarrowName02,
+ monthID03,
+ monthDefaultAbbrvName03,
+ monthDefaultFullName03,
+ monthDefaultNarrowName03,
+ monthID04,
+ monthDefaultAbbrvName04,
+ monthDefaultFullName04,
+ monthDefaultNarrowName04,
+ monthID05,
+ monthDefaultAbbrvName05,
+ monthDefaultFullName05,
+ monthDefaultNarrowName05,
+ monthID06,
+ monthDefaultAbbrvName06,
+ monthDefaultFullName06,
+ monthDefaultNarrowName06,
+ monthID07,
+ monthDefaultAbbrvName07,
+ monthDefaultFullName07,
+ monthDefaultNarrowName07,
+ monthID08,
+ monthDefaultAbbrvName08,
+ monthDefaultFullName08,
+ monthDefaultNarrowName08,
+ monthID09,
+ monthDefaultAbbrvName09,
+ monthDefaultFullName09,
+ monthDefaultNarrowName09,
+ monthID010,
+ monthDefaultAbbrvName010,
+ monthDefaultFullName010,
+ monthDefaultNarrowName010,
+ monthID011,
+ monthDefaultAbbrvName011,
+ monthDefaultFullName011,
+ monthDefaultNarrowName011,
+ genitiveMonthID00,
+ genitiveMonthDefaultAbbrvName00,
+ genitiveMonthDefaultFullName00,
+ genitiveMonthDefaultNarrowName00,
+ genitiveMonthID01,
+ genitiveMonthDefaultAbbrvName01,
+ genitiveMonthDefaultFullName01,
+ genitiveMonthDefaultNarrowName01,
+ genitiveMonthID02,
+ genitiveMonthDefaultAbbrvName02,
+ genitiveMonthDefaultFullName02,
+ genitiveMonthDefaultNarrowName02,
+ genitiveMonthID03,
+ genitiveMonthDefaultAbbrvName03,
+ genitiveMonthDefaultFullName03,
+ genitiveMonthDefaultNarrowName03,
+ genitiveMonthID04,
+ genitiveMonthDefaultAbbrvName04,
+ genitiveMonthDefaultFullName04,
+ genitiveMonthDefaultNarrowName04,
+ genitiveMonthID05,
+ genitiveMonthDefaultAbbrvName05,
+ genitiveMonthDefaultFullName05,
+ genitiveMonthDefaultNarrowName05,
+ genitiveMonthID06,
+ genitiveMonthDefaultAbbrvName06,
+ genitiveMonthDefaultFullName06,
+ genitiveMonthDefaultNarrowName06,
+ genitiveMonthID07,
+ genitiveMonthDefaultAbbrvName07,
+ genitiveMonthDefaultFullName07,
+ genitiveMonthDefaultNarrowName07,
+ genitiveMonthID08,
+ genitiveMonthDefaultAbbrvName08,
+ genitiveMonthDefaultFullName08,
+ genitiveMonthDefaultNarrowName08,
+ genitiveMonthID09,
+ genitiveMonthDefaultAbbrvName09,
+ genitiveMonthDefaultFullName09,
+ genitiveMonthDefaultNarrowName09,
+ genitiveMonthID010,
+ genitiveMonthDefaultAbbrvName010,
+ genitiveMonthDefaultFullName010,
+ genitiveMonthDefaultNarrowName010,
+ genitiveMonthID011,
+ genitiveMonthDefaultAbbrvName011,
+ genitiveMonthDefaultFullName011,
+ genitiveMonthDefaultNarrowName011,
+ partitiveMonthID00,
+ partitiveMonthDefaultAbbrvName00,
+ partitiveMonthDefaultFullName00,
+ partitiveMonthDefaultNarrowName00,
+ partitiveMonthID01,
+ partitiveMonthDefaultAbbrvName01,
+ partitiveMonthDefaultFullName01,
+ partitiveMonthDefaultNarrowName01,
+ partitiveMonthID02,
+ partitiveMonthDefaultAbbrvName02,
+ partitiveMonthDefaultFullName02,
+ partitiveMonthDefaultNarrowName02,
+ partitiveMonthID03,
+ partitiveMonthDefaultAbbrvName03,
+ partitiveMonthDefaultFullName03,
+ partitiveMonthDefaultNarrowName03,
+ partitiveMonthID04,
+ partitiveMonthDefaultAbbrvName04,
+ partitiveMonthDefaultFullName04,
+ partitiveMonthDefaultNarrowName04,
+ partitiveMonthID05,
+ partitiveMonthDefaultAbbrvName05,
+ partitiveMonthDefaultFullName05,
+ partitiveMonthDefaultNarrowName05,
+ partitiveMonthID06,
+ partitiveMonthDefaultAbbrvName06,
+ partitiveMonthDefaultFullName06,
+ partitiveMonthDefaultNarrowName06,
+ partitiveMonthID07,
+ partitiveMonthDefaultAbbrvName07,
+ partitiveMonthDefaultFullName07,
+ partitiveMonthDefaultNarrowName07,
+ partitiveMonthID08,
+ partitiveMonthDefaultAbbrvName08,
+ partitiveMonthDefaultFullName08,
+ partitiveMonthDefaultNarrowName08,
+ partitiveMonthID09,
+ partitiveMonthDefaultAbbrvName09,
+ partitiveMonthDefaultFullName09,
+ partitiveMonthDefaultNarrowName09,
+ partitiveMonthID010,
+ partitiveMonthDefaultAbbrvName010,
+ partitiveMonthDefaultFullName010,
+ partitiveMonthDefaultNarrowName010,
+ partitiveMonthID011,
+ partitiveMonthDefaultAbbrvName011,
+ partitiveMonthDefaultFullName011,
+ partitiveMonthDefaultNarrowName011,
+ eraID00,
+ eraDefaultAbbrvName00,
+ eraDefaultFullName00,
+ eraID01,
+ eraDefaultAbbrvName01,
+ eraDefaultFullName01,
+ startDayOfWeek0,
+ minimalDaysInFirstWeek0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCalendars_en_ZW(sal_Int16& count)
+{
+ count = calendarsCount;
+ return (sal_Unicode**)calendars;
+}
+static const sal_Unicode defaultCurrency0[] = {1};
+static const sal_Unicode defaultCurrencyUsedInCompatibleFormatCodes0[] = {1};
+static const sal_Unicode defaultCurrencyLegacyOnly0[] = {0};
+static const sal_Unicode currencyID0[] = {0x5a, 0x57, 0x44, 0x0};
+static const sal_Unicode currencySymbol0[] = {0x5a, 0x24, 0x0};
+static const sal_Unicode bankSymbol0[] = {0x5a, 0x57, 0x44, 0x0};
+static const sal_Unicode currencyName0[] = {0x5a, 0x69, 0x6d, 0x62, 0x61, 0x62, 0x77, 0x65, 0x61, 0x6e, 0x20, 0x44, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x0};
+static const sal_Unicode currencyDecimalPlaces0[] = {2};
+
+static const sal_Int16 currencyCount = 1;
+
+static const sal_Unicode* currencies[] = {
+ currencyID0,
+ currencySymbol0,
+ bankSymbol0,
+ currencyName0,
+ defaultCurrency0,
+ defaultCurrencyUsedInCompatibleFormatCodes0,
+ currencyDecimalPlaces0,
+ defaultCurrencyLegacyOnly0,
+};
+
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getAllCurrencies_en_ZW(sal_Int16& count)
+{
+ count = currencyCount;
+ return (sal_Unicode**)currencies;
+}
+extern sal_Unicode ** SAL_CALL getTransliterations_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getTransliterations_en_ZW(sal_Int16& count)
+{
+ return getTransliterations_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getForbiddenCharacters_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getForbiddenCharacters_en_ZW(sal_Int16& count)
+{
+ return getForbiddenCharacters_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getBreakIteratorRules_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getBreakIteratorRules_en_ZW(sal_Int16& count)
+{
+ return getBreakIteratorRules_en_US(count);
+}
+extern sal_Unicode ** SAL_CALL getReservedWords_en_US(sal_Int16& count);
+SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL getReservedWords_en_ZW(sal_Int16& count)
+{
+ return getReservedWords_en_US(count);
+}
+// ---> ContinuousNumbering
+extern const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL getContinuousNumberingLevels_en_ZW(sal_Int16& nStyles, sal_Int16& nAttributes)
+{
+ return getContinuousNumberingLevels_en_US(nStyles, nAttributes);
+}
+// ---> OutlineNumbering
+extern const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_US(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes);
+SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL getOutlineNumberingLevels_en_ZW(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)
+{
+ return getOutlineNumberingLevels_en_US(nStyles, nLevels, nAttributes);
+}
+} // extern "C"
+
diff --git a/vcl/workben/localestub/localestub.cxx b/vcl/workben/localestub/localestub.cxx
new file mode 100644
index 000000000..66942f1c6
--- /dev/null
+++ b/vcl/workben/localestub/localestub.cxx
@@ -0,0 +1,39 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <sal/types.h>
+
+extern "C" const sal_Unicode* getSTC_CharData_T2S() { return nullptr; }
+extern "C" const sal_uInt16* getSTC_CharIndex_T2S() { return nullptr; }
+extern "C" const sal_Unicode* getSTC_CharData_S2V() { return nullptr; }
+extern "C" const sal_uInt16* getSTC_CharIndex_S2V() { return nullptr; }
+extern "C" const sal_Unicode* getSTC_CharData_S2T() { return nullptr; }
+extern "C" const sal_uInt16* getSTC_CharIndex_S2T() { return nullptr; }
+extern "C" const sal_Unicode *getSTC_WordData(sal_Int32&) { return nullptr; }
+extern "C" const sal_uInt16 *getSTC_WordIndex_T2S(sal_Int32&) { return nullptr; }
+extern "C" const sal_uInt16 *getSTC_WordEntry_T2S() { return nullptr; }
+extern "C" const sal_uInt16 *getSTC_WordIndex_S2T(sal_Int32&) { return nullptr; }
+extern "C" const sal_uInt16 *getSTC_WordEntry_S2T() { return nullptr; }
+extern "C" sal_uInt16** get_zh_zhuyin() { return nullptr; }
+extern "C" sal_uInt16** get_zh_pinyin() { return nullptr; }
+extern "C" const sal_Unicode* getHangul2HanjaData() { return nullptr; }
+extern "C" const void* getHangul2HanjaIndex() { return nullptr; }
+extern "C" sal_Int16 getHangul2HanjaIndexCount() { return 0; }
+extern "C" const sal_uInt16* getHanja2HangulIndex() { return nullptr; }
+extern "C" const sal_Unicode* getHanja2HangulData() { return 0; }
+extern "C" sal_uInt16** get_indexdata_ko_dict(sal_Int16*) { return nullptr; }
+extern "C" sal_uInt16** get_indexdata_zh_TW_radical(sal_Int16*) { return nullptr; }
+extern "C" sal_uInt16** get_indexdata_zh_TW_stroke(sal_Int16*) { return nullptr; }
+extern "C" sal_uInt16** get_indexdata_zh_radical(sal_Int16*) { return nullptr; }
+extern "C" sal_uInt16** get_indexdata_zh_pinyin(sal_Int16*) { return nullptr; }
+extern "C" sal_uInt16** get_indexdata_zh_stroke(sal_Int16*) { return nullptr; }
+extern "C" sal_uInt16** get_indexdata_zh_zhuyin(sal_Int16*) { return nullptr; }
+extern "C" sal_uInt16** get_ko_phonetic(sal_Int16*) { return nullptr; }
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/lwpfuzzer.cxx b/vcl/workben/lwpfuzzer.cxx
new file mode 100644
index 000000000..fc0704542
--- /dev/null
+++ b/vcl/workben/lwpfuzzer.cxx
@@ -0,0 +1,57 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" bool TestImportLWP(SvStream &rStream);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportLWP(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/lwpfuzzer.options b/vcl/workben/lwpfuzzer.options
new file mode 100644
index 000000000..678d526b1
--- /dev/null
+++ b/vcl/workben/lwpfuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 65536
diff --git a/vcl/workben/metfuzzer.cxx b/vcl/workben/metfuzzer.cxx
new file mode 100644
index 000000000..fd5064329
--- /dev/null
+++ b/vcl/workben/metfuzzer.cxx
@@ -0,0 +1,67 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+extern "C" {
+void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * );
+}
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation },
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" bool imeGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ Graphic aGraphic;
+ (void)imeGraphicImport(aStream, aGraphic, nullptr);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/metfuzzer.options b/vcl/workben/metfuzzer.options
new file mode 100644
index 000000000..84ac4eb4e
--- /dev/null
+++ b/vcl/workben/metfuzzer.options
@@ -0,0 +1,4 @@
+[libfuzzer]
+max_len = 49152
+[env]
+AFL_DRIVER_DONT_DEFER=1
diff --git a/vcl/workben/mmlfuzzer.cxx b/vcl/workben/mmlfuzzer.cxx
new file mode 100644
index 000000000..8811c2743
--- /dev/null
+++ b/vcl/workben/mmlfuzzer.cxx
@@ -0,0 +1,29 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+extern "C" bool TestImportMML(SvStream& rStream);
+
+extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportMML(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/mmlfuzzer.options b/vcl/workben/mmlfuzzer.options
new file mode 100644
index 000000000..120b6953b
--- /dev/null
+++ b/vcl/workben/mmlfuzzer.options
@@ -0,0 +1,5 @@
+[libfuzzer]
+max_len = 65536
+dict = xml.dict
+[env]
+AFL_DRIVER_DONT_DEFER=1
diff --git a/vcl/workben/mtfdemo.cxx b/vcl/workben/mtfdemo.cxx
new file mode 100644
index 000000000..ea987186c
--- /dev/null
+++ b/vcl/workben/mtfdemo.cxx
@@ -0,0 +1,165 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <comphelper/processfactory.hxx>
+#include <cppuhelper/bootstrap.hxx>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/lang/XInitialization.hpp>
+#include <com/sun/star/registry/XSimpleRegistry.hpp>
+#include <com/sun/star/ucb/UniversalContentBroker.hpp>
+
+#include <vcl/vclmain.hxx>
+#include <vcl/layout.hxx>
+#include <vcl/gdimtf.hxx>
+#include <vcl/wmf.hxx>
+
+#include <tools/diagnose_ex.h>
+#include <tools/urlobj.hxx>
+#include <tools/stream.hxx>
+#include <tools/vcompat.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/wrkwin.hxx>
+#include <vcl/virdev.hxx>
+#include <sal/log.hxx>
+
+#include <cstdlib>
+
+using namespace css;
+
+namespace {
+
+class DemoMtfWin : public WorkWindow
+{
+ GDIMetaFile maMtf;
+
+public:
+ explicit DemoMtfWin(const OUString& rFileName)
+ : WorkWindow(nullptr, WB_APP | WB_STDWORK)
+ {
+ SvFileStream aFileStream(rFileName, StreamMode::READ);
+
+ if (aFileStream.IsOpen())
+ {
+ ReadWindowMetafile(aFileStream, maMtf);
+ }
+ else
+ {
+ Application::Abort("Can't read metafile");
+ }
+ }
+
+ virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override;
+};
+
+}
+
+void DemoMtfWin::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect)
+{
+ maMtf.Play(this, maMtf.GetActionSize());
+
+ WorkWindow::Paint(rRenderContext, rRect);
+}
+
+namespace {
+
+class DemoMtfApp : public Application
+{
+ VclPtr<DemoMtfWin> mpWin;
+ OUString maFileName;
+
+ static void showHelp()
+ {
+ fprintf(stderr, "Usage: mtfdemo --help | FILE\n");
+ fprintf(stderr, "A VCL test app that displays Windows metafiles\n");
+ std::exit(0);
+ }
+
+public:
+
+ DemoMtfApp()
+ : mpWin(nullptr)
+ {
+ }
+
+ virtual int Main() override
+ {
+ try
+ {
+ mpWin = VclPtr<DemoMtfWin>::Create(maFileName);
+ mpWin->SetText("Display metafile");
+
+ mpWin->Show();
+
+ Application::Execute();
+ }
+ catch (const css::uno::Exception&)
+ {
+ TOOLS_WARN_EXCEPTION("vcl.app", "Fatal");
+ return 1;
+ }
+ catch (const std::exception& e)
+ {
+ SAL_WARN("vcl.app", "Fatal: " << e.what());
+ return 1;
+ }
+ return 0;
+ }
+
+private:
+ uno::Reference<lang::XMultiServiceFactory> xMSF;
+ void Init() override
+ {
+ try
+ {
+ const sal_uInt16 nCmdParams = GetCommandLineParamCount();
+
+ if (nCmdParams == 0)
+ showHelp();
+ else
+ {
+ OUString aArg = GetCommandLineParam(0);
+
+ if (aArg == "--help" || aArg == "-h")
+ showHelp();
+ else
+ maFileName = aArg;
+ }
+
+ uno::Reference<uno::XComponentContext> xComponentContext
+ = ::cppu::defaultBootstrap_InitialComponentContext();
+ xMSF.set(xComponentContext->getServiceManager(), uno::UNO_QUERY);
+ if(!xMSF.is())
+ Application::Abort("Bootstrap failure - no service manager");
+
+ ::comphelper::setProcessServiceFactory(xMSF);
+ }
+ catch (const uno::Exception &e)
+ {
+ Application::Abort("Bootstrap exception " + e.Message);
+ }
+ }
+
+ void DeInit() override
+ {
+ uno::Reference< lang::XComponent >(
+ comphelper::getProcessComponentContext(),
+ uno::UNO_QUERY_THROW)-> dispose();
+ ::comphelper::setProcessServiceFactory(nullptr);
+ }
+
+};
+
+}
+
+void vclmain::createApplication()
+{
+ static DemoMtfApp aApp;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/mtpfuzzer.cxx b/vcl/workben/mtpfuzzer.cxx
new file mode 100644
index 000000000..8ed271ced
--- /dev/null
+++ b/vcl/workben/mtpfuzzer.cxx
@@ -0,0 +1,42 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+const lib_to_factory_mapping* lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = { { 0, 0 } };
+
+ return map;
+}
+
+const lib_to_constructor_mapping* lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = { { 0, 0 } };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*) { return nullptr; }
+
+extern "C" bool TestImportMathType(SvStream& rStream);
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportMathType(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/mtpfuzzer.options b/vcl/workben/mtpfuzzer.options
new file mode 100644
index 000000000..9e9bf3455
--- /dev/null
+++ b/vcl/workben/mtpfuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 16384
diff --git a/vcl/workben/olefuzzer.cxx b/vcl/workben/olefuzzer.cxx
new file mode 100644
index 000000000..4d67ab57e
--- /dev/null
+++ b/vcl/workben/olefuzzer.cxx
@@ -0,0 +1,65 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+extern "C" {
+void * com_sun_star_comp_uui_UUIInteractionHandler_get_implementation( void *, void * );
+void * com_sun_star_i18n_CharacterClassification_Unicode_get_implementation( void *, void * );
+void * com_sun_star_i18n_CharacterClassification_get_implementation( void *, void * );
+}
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { "com_sun_star_comp_uui_UUIInteractionHandler_get_implementation", com_sun_star_comp_uui_UUIInteractionHandler_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation", com_sun_star_i18n_CharacterClassification_Unicode_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_get_implementation", com_sun_star_i18n_CharacterClassification_get_implementation },
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" bool TestImportOLE2(SvStream &rStream);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ TestImportOLE2(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/olefuzzer.options b/vcl/workben/olefuzzer.options
new file mode 100644
index 000000000..678d526b1
--- /dev/null
+++ b/vcl/workben/olefuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 65536
diff --git a/vcl/workben/pcdfuzzer.cxx b/vcl/workben/pcdfuzzer.cxx
new file mode 100644
index 000000000..ccd036753
--- /dev/null
+++ b/vcl/workben/pcdfuzzer.cxx
@@ -0,0 +1,58 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" bool icdGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ Graphic aGraphic;
+ (void)icdGraphicImport(aStream, aGraphic, nullptr);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/pcdfuzzer.options b/vcl/workben/pcdfuzzer.options
new file mode 100644
index 000000000..678d526b1
--- /dev/null
+++ b/vcl/workben/pcdfuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 65536
diff --git a/vcl/workben/pctfuzzer.cxx b/vcl/workben/pctfuzzer.cxx
new file mode 100644
index 000000000..a916920c4
--- /dev/null
+++ b/vcl/workben/pctfuzzer.cxx
@@ -0,0 +1,58 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" bool iptGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ Graphic aGraphic;
+ (void)iptGraphicImport(aStream, aGraphic, nullptr);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/pctfuzzer.options b/vcl/workben/pctfuzzer.options
new file mode 100644
index 000000000..678d526b1
--- /dev/null
+++ b/vcl/workben/pctfuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 65536
diff --git a/vcl/workben/pcxfuzzer.cxx b/vcl/workben/pcxfuzzer.cxx
new file mode 100644
index 000000000..e2b72fb7e
--- /dev/null
+++ b/vcl/workben/pcxfuzzer.cxx
@@ -0,0 +1,58 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" bool ipxGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ Graphic aGraphic;
+ (void)ipxGraphicImport(aStream, aGraphic, nullptr);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/pcxfuzzer.options b/vcl/workben/pcxfuzzer.options
new file mode 100644
index 000000000..678d526b1
--- /dev/null
+++ b/vcl/workben/pcxfuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 65536
diff --git a/vcl/workben/pngfuzzer.cxx b/vcl/workben/pngfuzzer.cxx
new file mode 100644
index 000000000..2a3357830
--- /dev/null
+++ b/vcl/workben/pngfuzzer.cxx
@@ -0,0 +1,56 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/pngread.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ vcl::PNGReader aReader(aStream);
+ (void)aReader.Read();
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/pngfuzzer.options b/vcl/workben/pngfuzzer.options
new file mode 100644
index 000000000..d62b77341
--- /dev/null
+++ b/vcl/workben/pngfuzzer.options
@@ -0,0 +1,3 @@
+[libfuzzer]
+max_len = 65536
+dict = png.dict
diff --git a/vcl/workben/ppmfuzzer.cxx b/vcl/workben/ppmfuzzer.cxx
new file mode 100644
index 000000000..854d457c5
--- /dev/null
+++ b/vcl/workben/ppmfuzzer.cxx
@@ -0,0 +1,58 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" bool ipbGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ Graphic aGraphic;
+ (void)ipbGraphicImport(aStream, aGraphic, nullptr);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/ppmfuzzer.options b/vcl/workben/ppmfuzzer.options
new file mode 100644
index 000000000..678d526b1
--- /dev/null
+++ b/vcl/workben/ppmfuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 65536
diff --git a/vcl/workben/pptfuzzer.cxx b/vcl/workben/pptfuzzer.cxx
new file mode 100644
index 000000000..d7f6b73f9
--- /dev/null
+++ b/vcl/workben/pptfuzzer.cxx
@@ -0,0 +1,135 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+extern "C" {
+void * emfio_component_getFactory( const char* , void* , void* );
+void * sd_component_getFactory( const char* , void* , void* );
+void * i18npool_component_getFactory( const char* , void* , void* );
+void * ucb_component_getFactory( const char* , void* , void* );
+
+void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * );
+void * com_sun_star_comp_framework_Desktop_get_implementation( void *, void * );
+void * com_sun_star_i18n_CharacterClassification_Unicode_get_implementation( void *, void * );
+void * com_sun_star_i18n_CharacterClassification_get_implementation( void *, void * );
+void * com_sun_star_i18n_NativeNumberSupplier_get_implementation( void *, void * );
+void * com_sun_star_i18n_NumberFormatCodeMapper_get_implementation( void *, void * );
+void * com_sun_star_i18n_Transliteration_get_implementation( void *, void * );
+void * com_sun_star_drawing_EnhancedCustomShapeEngine_get_implementation( void *, void * );
+void * com_sun_star_drawing_SvxShapeCollection_get_implementation( void *, void * );
+void * SfxDocumentMetaData_get_implementation( void *, void * );
+void * unoxml_component_getFactory( const char* , void* , void* );
+void * com_sun_star_animations_AnimateColor_get_implementation( void *, void * );
+void * com_sun_star_animations_AnimateMotion_get_implementation( void *, void * );
+void * com_sun_star_animations_AnimateSet_get_implementation( void *, void * );
+void * com_sun_star_animations_AnimateTransform_get_implementation( void *, void * );
+void * com_sun_star_animations_Animate_get_implementation( void *, void * );
+void * com_sun_star_animations_Audio_get_implementation( void *, void * );
+void * com_sun_star_animations_Command_get_implementation( void *, void * );
+void * com_sun_star_animations_IterateContainer_get_implementation( void *, void * );
+void * com_sun_star_animations_ParallelTimeContainer_get_implementation( void *, void * );
+void * com_sun_star_animations_SequenceTimeContainer_get_implementation( void *, void * );
+void * com_sun_star_animations_TransitionFilter_get_implementation( void *, void * );
+void * com_sun_star_comp_comphelper_OPropertyBag( void *, void * );
+void * com_sun_star_comp_uui_UUIInteractionHandler_get_implementation( void *, void * );
+}
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { "libemfiolo.a", emfio_component_getFactory },
+ { "libsdlo.a", sd_component_getFactory },
+ { "libunoxmllo.a", unoxml_component_getFactory },
+ { "libi18npoollo.a", i18npool_component_getFactory },
+ { "libucb1.a", ucb_component_getFactory },
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation },
+ { "com_sun_star_comp_framework_Desktop_get_implementation", com_sun_star_comp_framework_Desktop_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation", com_sun_star_i18n_CharacterClassification_Unicode_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_get_implementation", com_sun_star_i18n_CharacterClassification_get_implementation },
+ { "com_sun_star_i18n_NativeNumberSupplier_get_implementation", com_sun_star_i18n_NativeNumberSupplier_get_implementation },
+ { "com_sun_star_i18n_NumberFormatCodeMapper_get_implementation", com_sun_star_i18n_NumberFormatCodeMapper_get_implementation },
+ { "com_sun_star_i18n_Transliteration_get_implementation", com_sun_star_i18n_Transliteration_get_implementation },
+ { "com_sun_star_drawing_EnhancedCustomShapeEngine_get_implementation", com_sun_star_drawing_EnhancedCustomShapeEngine_get_implementation },
+ { "com_sun_star_drawing_SvxShapeCollection_get_implementation", com_sun_star_drawing_SvxShapeCollection_get_implementation },
+ { "SfxDocumentMetaData_get_implementation", SfxDocumentMetaData_get_implementation },
+ { "com_sun_star_animations_AnimateColor_get_implementation", com_sun_star_animations_AnimateColor_get_implementation },
+ { "com_sun_star_animations_AnimateMotion_get_implementation", com_sun_star_animations_AnimateMotion_get_implementation },
+ { "com_sun_star_animations_AnimateSet_get_implementation", com_sun_star_animations_AnimateSet_get_implementation },
+ { "com_sun_star_animations_AnimateTransform_get_implementation", com_sun_star_animations_AnimateTransform_get_implementation },
+ { "com_sun_star_animations_Animate_get_implementation", com_sun_star_animations_Animate_get_implementation },
+ { "com_sun_star_animations_Audio_get_implementation", com_sun_star_animations_Audio_get_implementation },
+ { "com_sun_star_animations_Command_get_implementation", com_sun_star_animations_Command_get_implementation },
+ { "com_sun_star_animations_IterateContainer_get_implementation", com_sun_star_animations_IterateContainer_get_implementation },
+ { "com_sun_star_animations_ParallelTimeContainer_get_implementation", com_sun_star_animations_ParallelTimeContainer_get_implementation },
+ { "com_sun_star_animations_SequenceTimeContainer_get_implementation", com_sun_star_animations_SequenceTimeContainer_get_implementation },
+ { "com_sun_star_animations_TransitionFilter_get_implementation", com_sun_star_animations_TransitionFilter_get_implementation },
+ { "com_sun_star_comp_comphelper_OPropertyBag", com_sun_star_comp_comphelper_OPropertyBag },
+ { "com_sun_star_comp_uui_UUIInteractionHandler_get_implementation", com_sun_star_comp_uui_UUIInteractionHandler_get_implementation },
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" void* SdCreateDialogFactory()
+{
+ return nullptr;
+}
+
+extern "C" bool TestImportPPT(SvStream &rStream);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ if (__lsan_disable)
+ __lsan_disable();
+
+ CommonInitialize(argc, argv);
+
+ comphelper::getProcessServiceFactory()->createInstance("com.sun.star.comp.Draw.PresentationDocument");
+
+ if (__lsan_enable)
+ __lsan_enable();
+
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportPPT(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/pptfuzzer.options b/vcl/workben/pptfuzzer.options
new file mode 100644
index 000000000..678d526b1
--- /dev/null
+++ b/vcl/workben/pptfuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 65536
diff --git a/vcl/workben/pptxfuzzer.cxx b/vcl/workben/pptxfuzzer.cxx
new file mode 100644
index 000000000..976b53d9b
--- /dev/null
+++ b/vcl/workben/pptxfuzzer.cxx
@@ -0,0 +1,33 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+extern "C" bool TestImportPPTX(SvStream& rStream);
+
+extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" void* SdCreateDialogFactory() { return nullptr; }
+
+extern "C" void* com_sun_star_comp_Draw_VisioImportFilter_get_implementation() { return nullptr; }
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportPPTX(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/pptxfuzzer.options b/vcl/workben/pptxfuzzer.options
new file mode 100644
index 000000000..db9a3e8c6
--- /dev/null
+++ b/vcl/workben/pptxfuzzer.options
@@ -0,0 +1,4 @@
+[libfuzzer]
+max_len = 98304
+[env]
+AFL_DRIVER_DONT_DEFER=1
diff --git a/vcl/workben/psdfuzzer.cxx b/vcl/workben/psdfuzzer.cxx
new file mode 100644
index 000000000..a1bb1823d
--- /dev/null
+++ b/vcl/workben/psdfuzzer.cxx
@@ -0,0 +1,58 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" bool ipdGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ Graphic aGraphic;
+ (void)ipdGraphicImport(aStream, aGraphic, nullptr);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/psdfuzzer.options b/vcl/workben/psdfuzzer.options
new file mode 100644
index 000000000..678d526b1
--- /dev/null
+++ b/vcl/workben/psdfuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 65536
diff --git a/vcl/workben/qpwfuzzer.cxx b/vcl/workben/qpwfuzzer.cxx
new file mode 100644
index 000000000..0b1fe6362
--- /dev/null
+++ b/vcl/workben/qpwfuzzer.cxx
@@ -0,0 +1,89 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+extern "C" {
+void * emfio_component_getFactory( const char* , void* , void* );
+void * i18npool_component_getFactory( const char* , void* , void* );
+
+void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * );
+void * com_sun_star_comp_framework_Desktop_get_implementation( void *, void * );
+void * com_sun_star_i18n_CharacterClassification_Unicode_get_implementation( void *, void * );
+void * com_sun_star_i18n_CharacterClassification_get_implementation( void *, void * );
+void * com_sun_star_i18n_Collator_get_implementation( void *, void * );
+void * com_sun_star_i18n_NativeNumberSupplier_get_implementation( void *, void * );
+void * com_sun_star_i18n_NumberFormatCodeMapper_get_implementation( void *, void * );
+void * com_sun_star_i18n_Transliteration_get_implementation( void *, void * );
+}
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { "libemfiolo.a", emfio_component_getFactory },
+ { "libi18npoollo.a", i18npool_component_getFactory },
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation },
+ { "com_sun_star_comp_framework_Desktop_get_implementation", com_sun_star_comp_framework_Desktop_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation", com_sun_star_i18n_CharacterClassification_Unicode_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_get_implementation", com_sun_star_i18n_CharacterClassification_get_implementation },
+ { "com_sun_star_i18n_Collator_get_implementation", com_sun_star_i18n_Collator_get_implementation },
+ { "com_sun_star_i18n_NativeNumberSupplier_get_implementation", com_sun_star_i18n_NativeNumberSupplier_get_implementation },
+ { "com_sun_star_i18n_NumberFormatCodeMapper_get_implementation", com_sun_star_i18n_NumberFormatCodeMapper_get_implementation },
+ { "com_sun_star_i18n_Transliteration_get_implementation", com_sun_star_i18n_Transliteration_get_implementation },
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" void* ScCreateDialogFactory()
+{
+ return nullptr;
+}
+
+extern "C" bool TestImportQPW(SvStream &rStream);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportQPW(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/qpwfuzzer.options b/vcl/workben/qpwfuzzer.options
new file mode 100644
index 000000000..d851ad58c
--- /dev/null
+++ b/vcl/workben/qpwfuzzer.options
@@ -0,0 +1,4 @@
+[libfuzzer]
+max_len = 65536
+[env]
+AFL_DRIVER_DONT_DEFER=1
diff --git a/vcl/workben/rasfuzzer.cxx b/vcl/workben/rasfuzzer.cxx
new file mode 100644
index 000000000..734180b59
--- /dev/null
+++ b/vcl/workben/rasfuzzer.cxx
@@ -0,0 +1,58 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" bool iraGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ Graphic aGraphic;
+ (void)iraGraphicImport(aStream, aGraphic, nullptr);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/rasfuzzer.options b/vcl/workben/rasfuzzer.options
new file mode 100644
index 000000000..678d526b1
--- /dev/null
+++ b/vcl/workben/rasfuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 65536
diff --git a/vcl/workben/rtffuzzer.cxx b/vcl/workben/rtffuzzer.cxx
new file mode 100644
index 000000000..5f2ac75e8
--- /dev/null
+++ b/vcl/workben/rtffuzzer.cxx
@@ -0,0 +1,90 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+extern "C" {
+void * emfio_component_getFactory( const char* , void* , void* );
+void * i18npool_component_getFactory( const char* , void* , void* );
+
+void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * );
+void * com_sun_star_comp_framework_Desktop_get_implementation( void *, void * );
+void * com_sun_star_i18n_CharacterClassification_Unicode_get_implementation( void *, void * );
+void * com_sun_star_i18n_CharacterClassification_get_implementation( void *, void * );
+void * com_sun_star_i18n_NativeNumberSupplier_get_implementation( void *, void * );
+void * com_sun_star_i18n_NumberFormatCodeMapper_get_implementation( void *, void * );
+void * com_sun_star_i18n_Transliteration_get_implementation( void *, void * );
+void * com_sun_star_comp_Writer_RtfFilter_get_implementation( void *, void * );
+}
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { "libemfiolo.a", emfio_component_getFactory },
+ { "libi18npoollo.a", i18npool_component_getFactory },
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation },
+ { "com_sun_star_comp_framework_Desktop_get_implementation", com_sun_star_comp_framework_Desktop_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation", com_sun_star_i18n_CharacterClassification_Unicode_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_get_implementation", com_sun_star_i18n_CharacterClassification_get_implementation },
+ { "com_sun_star_i18n_NativeNumberSupplier_get_implementation", com_sun_star_i18n_NativeNumberSupplier_get_implementation },
+ { "com_sun_star_i18n_NumberFormatCodeMapper_get_implementation", com_sun_star_i18n_NumberFormatCodeMapper_get_implementation },
+ { "com_sun_star_i18n_Transliteration_get_implementation", com_sun_star_i18n_Transliteration_get_implementation },
+ { "com_sun_star_comp_Writer_RtfFilter_get_implementation", com_sun_star_comp_Writer_RtfFilter_get_implementation },
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" void* SwCreateDialogFactory()
+{
+ return nullptr;
+}
+
+extern "C" bool TestImportRTF(SvStream &rStream);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportRTF(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/rtffuzzer.options b/vcl/workben/rtffuzzer.options
new file mode 100644
index 000000000..d851ad58c
--- /dev/null
+++ b/vcl/workben/rtffuzzer.options
@@ -0,0 +1,4 @@
+[libfuzzer]
+max_len = 65536
+[env]
+AFL_DRIVER_DONT_DEFER=1
diff --git a/vcl/workben/scrtffuzzer.cxx b/vcl/workben/scrtffuzzer.cxx
new file mode 100644
index 000000000..779519f34
--- /dev/null
+++ b/vcl/workben/scrtffuzzer.cxx
@@ -0,0 +1,83 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+extern "C" {
+void* i18npool_component_getFactory(const char*, void*, void*);
+
+void* com_sun_star_i18n_LocaleDataImpl_get_implementation(void*, void*);
+void* com_sun_star_i18n_BreakIterator_Unicode_get_implementation(void*, void*);
+void* com_sun_star_i18n_BreakIterator_get_implementation(void*, void*);
+void* com_sun_star_comp_framework_Desktop_get_implementation(void*, void*);
+void* com_sun_star_i18n_CharacterClassification_Unicode_get_implementation(void*, void*);
+void* com_sun_star_i18n_CharacterClassification_get_implementation(void*, void*);
+void* com_sun_star_i18n_NativeNumberSupplier_get_implementation(void*, void*);
+void* com_sun_star_i18n_NumberFormatCodeMapper_get_implementation(void*, void*);
+void* com_sun_star_i18n_Transliteration_get_implementation(void*, void*);
+}
+
+const lib_to_factory_mapping* lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[]
+ = { { "libi18npoollo.a", i18npool_component_getFactory }, { 0, 0 } };
+
+ return map;
+}
+
+const lib_to_constructor_mapping* lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[]
+ = { { "com_sun_star_i18n_LocaleDataImpl_get_implementation",
+ com_sun_star_i18n_LocaleDataImpl_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation",
+ com_sun_star_i18n_BreakIterator_Unicode_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_get_implementation",
+ com_sun_star_i18n_BreakIterator_get_implementation },
+ { "com_sun_star_comp_framework_Desktop_get_implementation",
+ com_sun_star_comp_framework_Desktop_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation",
+ com_sun_star_i18n_CharacterClassification_Unicode_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_get_implementation",
+ com_sun_star_i18n_CharacterClassification_get_implementation },
+ { "com_sun_star_i18n_NativeNumberSupplier_get_implementation",
+ com_sun_star_i18n_NativeNumberSupplier_get_implementation },
+ { "com_sun_star_i18n_NumberFormatCodeMapper_get_implementation",
+ com_sun_star_i18n_NumberFormatCodeMapper_get_implementation },
+ { "com_sun_star_i18n_Transliteration_get_implementation",
+ com_sun_star_i18n_Transliteration_get_implementation },
+ { 0, 0 } };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*) { return nullptr; }
+
+extern "C" void* ScCreateDialogFactory() { return nullptr; }
+
+extern "C" bool TestImportCalcRTF(SvStream& rStream);
+
+extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportCalcRTF(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/scrtffuzzer.options b/vcl/workben/scrtffuzzer.options
new file mode 100644
index 000000000..d851ad58c
--- /dev/null
+++ b/vcl/workben/scrtffuzzer.options
@@ -0,0 +1,4 @@
+[libfuzzer]
+max_len = 65536
+[env]
+AFL_DRIVER_DONT_DEFER=1
diff --git a/vcl/workben/sftfuzzer.cxx b/vcl/workben/sftfuzzer.cxx
new file mode 100644
index 000000000..fc951ddc1
--- /dev/null
+++ b/vcl/workben/sftfuzzer.cxx
@@ -0,0 +1,44 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <vcl/font.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+const lib_to_factory_mapping* lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = { { 0, 0 } };
+
+ return map;
+}
+
+const lib_to_constructor_mapping* lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = { { 0, 0 } };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*) { return nullptr; }
+
+extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ (void)vcl::Font::identifyFont(data, size);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/sftfuzzer.options b/vcl/workben/sftfuzzer.options
new file mode 100644
index 000000000..678d526b1
--- /dev/null
+++ b/vcl/workben/sftfuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 65536
diff --git a/vcl/workben/slkfuzzer.cxx b/vcl/workben/slkfuzzer.cxx
new file mode 100644
index 000000000..9b8463bdc
--- /dev/null
+++ b/vcl/workben/slkfuzzer.cxx
@@ -0,0 +1,89 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+extern "C" {
+void * emfio_component_getFactory( const char* , void* , void* );
+void * i18npool_component_getFactory( const char* , void* , void* );
+
+void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * );
+void * com_sun_star_comp_framework_Desktop_get_implementation( void *, void * );
+void * com_sun_star_i18n_CharacterClassification_Unicode_get_implementation( void *, void * );
+void * com_sun_star_i18n_CharacterClassification_get_implementation( void *, void * );
+void * com_sun_star_i18n_Collator_get_implementation( void *, void * );
+void * com_sun_star_i18n_NativeNumberSupplier_get_implementation( void *, void * );
+void * com_sun_star_i18n_NumberFormatCodeMapper_get_implementation( void *, void * );
+void * com_sun_star_i18n_Transliteration_get_implementation( void *, void * );
+}
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { "libemfiolo.a", emfio_component_getFactory },
+ { "libi18npoollo.a", i18npool_component_getFactory },
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation },
+ { "com_sun_star_comp_framework_Desktop_get_implementation", com_sun_star_comp_framework_Desktop_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation", com_sun_star_i18n_CharacterClassification_Unicode_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_get_implementation", com_sun_star_i18n_CharacterClassification_get_implementation },
+ { "com_sun_star_i18n_Collator_get_implementation", com_sun_star_i18n_Collator_get_implementation },
+ { "com_sun_star_i18n_NativeNumberSupplier_get_implementation", com_sun_star_i18n_NativeNumberSupplier_get_implementation },
+ { "com_sun_star_i18n_NumberFormatCodeMapper_get_implementation", com_sun_star_i18n_NumberFormatCodeMapper_get_implementation },
+ { "com_sun_star_i18n_Transliteration_get_implementation", com_sun_star_i18n_Transliteration_get_implementation },
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" void* ScCreateDialogFactory()
+{
+ return nullptr;
+}
+
+extern "C" bool TestImportSLK(SvStream &rStream);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportSLK(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/slkfuzzer.options b/vcl/workben/slkfuzzer.options
new file mode 100644
index 000000000..d851ad58c
--- /dev/null
+++ b/vcl/workben/slkfuzzer.options
@@ -0,0 +1,4 @@
+[libfuzzer]
+max_len = 65536
+[env]
+AFL_DRIVER_DONT_DEFER=1
diff --git a/vcl/workben/svdem.cxx b/vcl/workben/svdem.cxx
new file mode 100644
index 000000000..399a3683f
--- /dev/null
+++ b/vcl/workben/svdem.cxx
@@ -0,0 +1,98 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <sal/main.h>
+#include <sal/log.hxx>
+#include <tools/diagnose_ex.h>
+#include <tools/extendapplicationenvironment.hxx>
+
+#include <cppuhelper/bootstrap.hxx>
+#include <comphelper/processfactory.hxx>
+
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
+
+#include <vcl/event.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/wrkwin.hxx>
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace cppu;
+
+// Forward declaration
+static void Main();
+
+SAL_IMPLEMENT_MAIN()
+{
+ try
+ {
+ tools::extendApplicationEnvironment();
+
+ Reference< XComponentContext > xContext = defaultBootstrap_InitialComponentContext();
+ Reference< XMultiServiceFactory > xServiceManager( xContext->getServiceManager(), UNO_QUERY );
+
+ if( !xServiceManager.is() )
+ Application::Abort( "Failed to bootstrap" );
+
+ comphelper::setProcessServiceFactory( xServiceManager );
+
+ InitVCL();
+ ::Main();
+ DeInitVCL();
+ }
+ catch (const Exception&)
+ {
+ TOOLS_WARN_EXCEPTION("vcl.app", "Fatal");
+ return 1;
+ }
+ catch (const std::exception &e)
+ {
+ fprintf(stderr, "fatal error: %s\n", e.what());
+ return 1;
+ }
+
+ return 0;
+}
+
+namespace {
+
+class MyWin : public WorkWindow
+{
+public:
+ MyWin( vcl::Window* pParent, WinBits nWinStyle );
+};
+
+}
+
+void Main()
+{
+ ScopedVclPtrInstance< MyWin > aMainWin( nullptr, WB_APP | WB_STDWORK );
+ aMainWin->SetText("VCL - Workbench");
+ aMainWin->Show();
+
+ Application::Execute();
+}
+
+MyWin::MyWin( vcl::Window* pParent, WinBits nWinStyle ) :
+ WorkWindow( pParent, nWinStyle )
+{
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/svmfuzzer.cxx b/vcl/workben/svmfuzzer.cxx
new file mode 100644
index 000000000..5ef7366c1
--- /dev/null
+++ b/vcl/workben/svmfuzzer.cxx
@@ -0,0 +1,56 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/gdimtf.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ GDIMetaFile aGDIMetaFile;
+ ReadGDIMetaFile(aStream, aGDIMetaFile);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/svmfuzzer.options b/vcl/workben/svmfuzzer.options
new file mode 100644
index 000000000..678d526b1
--- /dev/null
+++ b/vcl/workben/svmfuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 65536
diff --git a/vcl/workben/svpclient.cxx b/vcl/workben/svpclient.cxx
new file mode 100644
index 000000000..5d7cf8b9a
--- /dev/null
+++ b/vcl/workben/svpclient.cxx
@@ -0,0 +1,283 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <sal/main.h>
+#include <sal/log.hxx>
+
+#include <cppuhelper/bootstrap.hxx>
+#include <comphelper/processfactory.hxx>
+
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
+
+#include <vcl/event.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/wrkwin.hxx>
+#include <vcl/button.hxx>
+#include <vcl/lstbox.hxx>
+#include <vcl/fixed.hxx>
+#include <vcl/bitmapex.hxx>
+#include <vcl/graphicfilter.hxx>
+#include <vcl/graph.hxx>
+#include <tools/diagnose_ex.h>
+#include <tools/extendapplicationenvironment.hxx>
+#include <tools/stream.hxx>
+
+#include <rtl/strbuf.hxx>
+#include <rtl/ustrbuf.hxx>
+
+#include <math.h>
+
+#include <errno.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace cppu;
+
+// Forward declaration
+static void Main();
+
+SAL_IMPLEMENT_MAIN()
+{
+ try
+ {
+ tools::extendApplicationEnvironment();
+
+ // create the global service-manager
+ Reference< XComponentContext > xContext = defaultBootstrap_InitialComponentContext();
+ Reference< XMultiServiceFactory > xServiceManager( xContext->getServiceManager(), UNO_QUERY );
+
+ if( !xServiceManager.is() )
+ Application::Abort( "Failed to bootstrap" );
+
+ comphelper::setProcessServiceFactory( xServiceManager );
+
+ InitVCL();
+ ::Main();
+ DeInitVCL();
+ }
+ catch (const Exception&)
+ {
+ TOOLS_WARN_EXCEPTION("vcl", "Fatal");
+ return 1;
+ }
+ catch (const std::exception& e)
+ {
+ SAL_WARN("vcl", "Fatal: " << e.what());
+ return 1;
+ }
+
+ return 0;
+}
+
+namespace {
+
+class MyWin : public WorkWindow
+{
+ VclPtr<PushButton> m_aListButton;
+ VclPtr<ListBox> m_aSvpBitmaps;
+ VclPtr<FixedImage> m_aImage;
+ VclPtr<PushButton> m_aQuitButton;
+public:
+ MyWin( vcl::Window* pParent, WinBits nWinStyle );
+
+ virtual bool Close() override;
+ virtual ~MyWin() override { disposeOnce(); }
+ virtual void dispose() override;
+
+ void parseList( const OString& rList );
+ static OString processCommand( const OString& rCommand );
+
+ DECL_LINK( ListHdl, Button*, void );
+ DECL_LINK( SelectHdl, ListBox&, void );
+ DECL_STATIC_LINK( MyWin, QuitHdl, Button*, void );
+};
+
+}
+
+void Main()
+{
+ ScopedVclPtrInstance< MyWin > aMainWin( nullptr, WB_STDWORK );
+ aMainWin->SetText( "SvpClient" );
+ aMainWin->Show();
+
+ Application::Execute();
+}
+
+MyWin::MyWin( vcl::Window* pParent, WinBits nWinStyle ) :
+ WorkWindow( pParent, nWinStyle ),
+ m_aListButton(VclPtr<PushButton>::Create(this, 0)),
+ m_aSvpBitmaps(VclPtr<ListBox>::Create(this, WB_BORDER)),
+ m_aImage(VclPtr<FixedImage>::Create(this, WB_BORDER)),
+ m_aQuitButton(VclPtr<PushButton>::Create(this, 0))
+{
+ m_aListButton->SetPosSizePixel( Point( 10, 10 ), Size( 120, 25 ) );
+ m_aListButton->SetText( "List Elements" );
+ m_aListButton->SetClickHdl( LINK( this, MyWin, ListHdl ) );
+ m_aListButton->Show();
+
+ m_aSvpBitmaps->SetPosSizePixel( Point( 10, 40 ), Size( 150, 150 ) );
+ m_aSvpBitmaps->SetSelectHdl( LINK( this, MyWin, SelectHdl ) );
+ m_aSvpBitmaps->Show();
+
+ m_aImage->SetPosSizePixel( Point( 170, 10 ), Size( 400, 400 ) );
+ m_aImage->Show();
+
+ m_aQuitButton->SetPosSizePixel( Point( 10, 300 ), Size( 120,25 ) );
+ m_aQuitButton->SetText( "Quit SVP server" );
+ m_aQuitButton->SetClickHdl( LINK( this, MyWin, QuitHdl ) );
+ m_aQuitButton->Show();
+}
+
+bool MyWin::Close()
+{
+ bool bRet = WorkWindow::Close();
+ if( bRet )
+ Application::Quit();
+ return bRet;
+}
+
+void MyWin::dispose()
+{
+ m_aListButton.disposeAndClear();
+ m_aSvpBitmaps.disposeAndClear();
+ m_aImage.disposeAndClear();
+ m_aQuitButton.disposeAndClear();
+ WorkWindow::dispose();
+}
+
+void MyWin::parseList( const OString& rList )
+{
+ sal_Int32 nTokenPos = 0;
+ OUString aElementType;
+ m_aSvpBitmaps->Clear();
+ while( nTokenPos >= 0 )
+ {
+ OString aLine = rList.getToken( 0, '\n', nTokenPos );
+ if( ! aLine.getLength() || *aLine.getStr() == '#' )
+ continue;
+
+ if( aLine.startsWith( "ElementType: " ) )
+ aElementType = OStringToOUString( aLine.copy( 13 ), RTL_TEXTENCODING_ASCII_US );
+ else
+ {
+ OUString aNewElement =
+ aElementType + ": " +
+ OStringToOUString( aLine, RTL_TEXTENCODING_ASCII_US );
+ m_aSvpBitmaps->InsertEntry( aNewElement );
+ }
+ }
+}
+
+OString MyWin::processCommand( const OString& rCommand )
+{
+ static const char* pEnv = getenv("SVP_LISTENER_PORT");
+ OStringBuffer aAnswer;
+ int nPort = (pEnv && *pEnv) ? atoi(pEnv) : 8000;
+ int nSocket = socket( PF_INET, SOCK_STREAM, 0 );
+ if( nSocket >= 0)
+ {
+ struct sockaddr_in addr;
+ memset(&addr, 0, sizeof(struct sockaddr_in));
+ addr.sin_family = AF_INET;
+ addr.sin_port = htons(nPort);
+ addr.sin_addr.s_addr = INADDR_ANY;
+ if( connect( nSocket, reinterpret_cast<sockaddr*>(&addr), sizeof(addr) ) )
+ {
+ perror( "SvpElementContainer: connect() failed" );
+ }
+ else
+ {
+ ssize_t nBytes = 0;
+ ssize_t fd = write( nSocket, rCommand.getStr(), rCommand.getLength() );
+
+ if (fd == 0)
+ SAL_WARN("vcl", "Connection closed on other end");
+ else if (fd < 0)
+ SAL_WARN("vcl", "Error writing to socket: " << strerror( errno ));
+
+ fd = write( nSocket, "\n", 1 );
+
+ if (fd == 0)
+ SAL_WARN("vcl", "Connection closed on other end");
+ else if (fd < 0)
+ SAL_WARN("vcl", "Error writing to socket: " << strerror( errno ));
+
+
+ char buf[256];
+ do
+ {
+ nBytes = read( nSocket, buf, sizeof(buf) );
+ aAnswer.append( buf, nBytes );
+ } while( nBytes == sizeof( buf ) );
+ }
+ close(nSocket);
+ }
+ else
+ perror( "SvpElementContainer: socket() failed\n" );
+ return aAnswer.makeStringAndClear();
+}
+
+IMPL_LINK_NOARG( MyWin, ListHdl, Button*, void)
+{
+ parseList( processCommand( "list" ) );
+}
+
+IMPL_STATIC_LINK_NOARG( MyWin, QuitHdl, Button*, void)
+{
+ processCommand( "quit" );
+}
+
+IMPL_LINK_NOARG( MyWin, SelectHdl, ListBox&, void)
+{
+ OUString aEntry = m_aSvpBitmaps->GetSelectedEntry();
+ sal_Int32 nPos = aEntry.indexOf( ": " );
+ if( nPos == -1 )
+ return;
+
+ OString aCommand =
+ "get " +
+ OUStringToOString( aEntry.copy( nPos+2 ), RTL_TEXTENCODING_ASCII_US );
+ OString aAnswer( processCommand( aCommand ) );
+ SvMemoryStream aStream( aAnswer.getLength() );
+ aStream.WriteBytes( aAnswer.getStr(), aAnswer.getLength() );
+ aStream.Seek( STREAM_SEEK_TO_BEGIN );
+
+ Graphic aGraphicResult;
+ GraphicFilter &rFilter = GraphicFilter::GetGraphicFilter();
+ rFilter.ImportGraphic( aGraphicResult, OUString("import"), aStream );
+
+ BitmapEx aBitmap = aGraphicResult.GetBitmapEx();
+
+ SAL_INFO("vcl", "got bitmap of size " << aBitmap.GetSizePixel().Width() << "x" << aBitmap.GetSizePixel().Height());
+ Size aFixedSize( aBitmap.GetSizePixel() );
+ aFixedSize.AdjustWidth(10 );
+ aFixedSize.AdjustHeight(10 );
+ m_aImage->SetSizePixel( aFixedSize );
+ m_aImage->SetImage( Image( aBitmap ) );
+
+}
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/svptest.cxx b/vcl/workben/svptest.cxx
new file mode 100644
index 000000000..06937d225
--- /dev/null
+++ b/vcl/workben/svptest.cxx
@@ -0,0 +1,328 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <sal/main.h>
+#include <sal/log.hxx>
+#include <tools/diagnose_ex.h>
+#include <tools/extendapplicationenvironment.hxx>
+
+#include <cppuhelper/bootstrap.hxx>
+#include <comphelper/processfactory.hxx>
+
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
+
+#include <vcl/event.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/wrkwin.hxx>
+#include <vcl/gradient.hxx>
+#include <vcl/lineinfo.hxx>
+#include <vcl/bitmap.hxx>
+#include <vcl/bitmapaccess.hxx>
+#include <vcl/metric.hxx>
+#include <vcl/vclptr.hxx>
+#include <bitmapwriteaccess.hxx>
+
+#include <rtl/ustrbuf.hxx>
+
+#include <math.h>
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace cppu;
+
+// Forward declaration
+static void Main();
+
+SAL_IMPLEMENT_MAIN()
+{
+ try
+ {
+ tools::extendApplicationEnvironment();
+
+ Reference< XComponentContext > xContext = defaultBootstrap_InitialComponentContext();
+ Reference< XMultiServiceFactory > xServiceManager( xContext->getServiceManager(), UNO_QUERY );
+
+ if( !xServiceManager.is() )
+ Application::Abort( "Failed to bootstrap" );
+
+ comphelper::setProcessServiceFactory( xServiceManager );
+
+ InitVCL();
+ ::Main();
+ DeInitVCL();
+ }
+ catch (const Exception&)
+ {
+ TOOLS_WARN_EXCEPTION("vcl.app", "Fatal");
+ return 1;
+ }
+ catch (const std::exception &e)
+ {
+ fprintf(stderr, "fatal error: %s\n", e.what());
+ return 1;
+ }
+
+ return 0;
+}
+
+namespace {
+
+class MyWin : public WorkWindow
+{
+ Bitmap m_aBitmap;
+public:
+ MyWin( vcl::Window* pParent, WinBits nWinStyle );
+
+ virtual void Paint( vcl::RenderContext& /*rRenderContext*/, const tools::Rectangle& rRect ) override;
+};
+
+}
+
+void Main()
+{
+ ScopedVclPtrInstance< MyWin > aMainWin( nullptr, WB_APP | WB_STDWORK );
+ aMainWin->SetText( "VCL - Workbench" );
+ aMainWin->Show();
+
+ Application::Execute();
+}
+
+MyWin::MyWin( vcl::Window* pParent, WinBits nWinStyle ) :
+ WorkWindow( pParent, nWinStyle ),
+ m_aBitmap( Size( 256, 256 ), 32 )
+{
+ // prepare an alpha mask
+ BitmapWriteAccess* pAcc = m_aBitmap.AcquireWriteAccess();
+ for( int nX = 0; nX < 256; nX++ )
+ {
+ for( int nY = 0; nY < 256; nY++ )
+ {
+ double fRed = 255.0-1.5*sqrt(static_cast<double>(nX*nX+nY*nY));
+ if( fRed < 0.0 )
+ fRed = 0.0;
+ double fGreen = 255.0-1.5*sqrt(static_cast<double>((255-nX)*(255-nX)+nY*nY));
+ if( fGreen < 0.0 )
+ fGreen = 0.0;
+ double fBlue = 255.0-1.5*sqrt(static_cast<double>((128-nX)*(128-nX)+(255-nY)*(255-nY)));
+ if( fBlue < 0.0 )
+ fBlue = 0.0;
+ pAcc->SetPixel( nY, nX, BitmapColor( sal_uInt8(fRed), sal_uInt8(fGreen), sal_uInt8(fBlue) ) );
+ }
+ }
+ Bitmap::ReleaseAccess( pAcc );
+}
+
+static Point project( const Point& rPoint )
+{
+ const double angle_x = M_PI / 6.0;
+ const double angle_z = M_PI / 6.0;
+
+ // transform planar coordinates to 3d
+ double x = rPoint.X();
+ double y = rPoint.Y();
+
+ // rotate around X axis
+ double x1 = x;
+ double y1 = y * cos( angle_x );
+ double z1 = y * sin( angle_x );
+
+ // rotate around Z axis
+ double x2 = x1 * cos( angle_z ) + y1 * sin( angle_z );
+ //double y2 = y1 * cos( angle_z ) - x1 * sin( angle_z );
+ double z2 = z1;
+
+ return Point( static_cast<sal_Int32>(x2), static_cast<sal_Int32>(z2) );
+}
+
+static Color approachColor( const Color& rFrom, const Color& rTo )
+{
+ Color aColor;
+ sal_uInt8 nDiff;
+ // approach red
+ if( rFrom.GetRed() < rTo.GetRed() )
+ {
+ nDiff = rTo.GetRed() - rFrom.GetRed();
+ aColor.SetRed( rFrom.GetRed() + std::min<sal_uInt8>( nDiff, 10 ) );
+ }
+ else if( rFrom.GetRed() > rTo.GetRed() )
+ {
+ nDiff = rFrom.GetRed() - rTo.GetRed();
+ aColor.SetRed( rFrom.GetRed() - std::min<sal_uInt8>( nDiff, 10 ) );
+ }
+ else
+ aColor.SetRed( rFrom.GetRed() );
+
+ // approach Green
+ if( rFrom.GetGreen() < rTo.GetGreen() )
+ {
+ nDiff = rTo.GetGreen() - rFrom.GetGreen();
+ aColor.SetGreen( rFrom.GetGreen() + std::min<sal_uInt8>( nDiff, 10 ) );
+ }
+ else if( rFrom.GetGreen() > rTo.GetGreen() )
+ {
+ nDiff = rFrom.GetGreen() - rTo.GetGreen();
+ aColor.SetGreen( rFrom.GetGreen() - std::min<sal_uInt8>( nDiff, 10 ) );
+ }
+ else
+ aColor.SetGreen( rFrom.GetGreen() );
+
+ // approach blue
+ if( rFrom.GetBlue() < rTo.GetBlue() )
+ {
+ nDiff = rTo.GetBlue() - rFrom.GetBlue();
+ aColor.SetBlue( rFrom.GetBlue() + std::min<sal_uInt8>( nDiff, 10 ) );
+ }
+ else if( rFrom.GetBlue() > rTo.GetBlue() )
+ {
+ nDiff = rFrom.GetBlue() - rTo.GetBlue();
+ aColor.SetBlue( rFrom.GetBlue() - std::min<sal_uInt8>( nDiff, 10 ) );
+ }
+ else
+ aColor.SetBlue( rFrom.GetBlue() );
+
+ return aColor;
+}
+
+#define DELTA 5.0
+void MyWin::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect)
+{
+ WorkWindow::Paint(rRenderContext, rRect);
+
+ rRenderContext.Push();
+ MapMode aMapMode(MapUnit::Map100thMM);
+
+ rRenderContext.SetMapMode(aMapMode);
+
+ Size aPaperSize = rRenderContext.GetOutputSize();
+ Point aCenter(aPaperSize.Width() / 2 - 300,
+ (aPaperSize.Height() - 8400) / 2 + 8400);
+ Point aP1(aPaperSize.Width() / 48, 0), aP2(aPaperSize.Width() / 40, 0);
+ Point aPoint;
+
+ rRenderContext.DrawRect(tools::Rectangle(Point(0, 0), aPaperSize));
+ rRenderContext.DrawRect(tools::Rectangle(Point(100, 100),
+ Size(aPaperSize.Width() - 200,
+ aPaperSize.Height() - 200)));
+ rRenderContext.DrawRect(tools::Rectangle(Point(200, 200),
+ Size(aPaperSize.Width() - 400,
+ aPaperSize.Height() - 400)));
+ rRenderContext.DrawRect(tools::Rectangle(Point(300, 300),
+ Size(aPaperSize.Width() - 600,
+ aPaperSize.Height() - 600)));
+
+ const int nFontCount = rRenderContext.GetDevFontCount();
+ const int nFontSamples = (nFontCount < 15) ? nFontCount : 15;
+ for (int i = 0; i < nFontSamples; ++i)
+ {
+
+ FontMetric aFont = rRenderContext.GetDevFont((i * nFontCount) / nFontSamples);
+ aFont.SetFontHeight(400 + (i % 7) * 100);
+ aFont.SetOrientation(i * (3600 / nFontSamples));
+ rRenderContext.SetFont(aFont);
+
+ sal_uInt8 nRed = (i << 6) & 0xC0;
+ sal_uInt8 nGreen = (i << 4) & 0xC0;
+ sal_uInt8 nBlue = (i << 2) & 0xC0;
+ rRenderContext.SetTextColor(Color(nRed, nGreen, nBlue));
+
+ OUString aPrintText = "SVP test program";
+
+ rRenderContext.DrawText(tools::Rectangle(Point((aPaperSize.Width() - 4000) / 2, 2000),
+ Size(aPaperSize.Width() - 2100, aPaperSize.Height() - 4000)),
+ aPrintText,
+ DrawTextFlags::MultiLine);
+ }
+
+ rRenderContext.SetFillColor();
+ DrawRect(tools::Rectangle(Point(aPaperSize.Width() - 4000, 1000),
+ Size(3000, 3000)));
+ rRenderContext.DrawBitmap(Point(aPaperSize.Width() - 4000, 1000),
+ Size( 3000,3000 ),
+ m_aBitmap);
+
+ Color const aWhite(0xff, 0xff, 0xff);
+ Color const aBlack(0, 0, 0);
+ Color const aLightRed(0xff, 0, 0);
+ Color const aDarkRed(0x40, 0, 0);
+ Color const aLightBlue(0, 0, 0xff);
+ Color const aDarkBlue(0,0,0x40);
+ Color const aLightGreen(0, 0xff, 0);
+ Color const aDarkGreen(0, 0x40, 0);
+
+ Gradient aGradient(GradientStyle::Linear, aBlack, aWhite);
+ aGradient.SetAngle(900);
+ rRenderContext.DrawGradient(tools::Rectangle(Point(1000, 4500),
+ Size(aPaperSize.Width() - 2000, 500)),
+ aGradient);
+ aGradient.SetStartColor(aDarkRed);
+ aGradient.SetEndColor(aLightBlue);
+ rRenderContext.DrawGradient(tools::Rectangle(Point(1000, 5300),
+ Size(aPaperSize.Width() - 2000, 500)),
+ aGradient);
+ aGradient.SetStartColor(aDarkBlue);
+ aGradient.SetEndColor(aLightGreen);
+ rRenderContext.DrawGradient(tools::Rectangle(Point(1000, 6100),
+ Size(aPaperSize.Width() - 2000, 500)),
+ aGradient);
+ aGradient.SetStartColor(aDarkGreen);
+ aGradient.SetEndColor(aLightRed);
+ rRenderContext.DrawGradient(tools::Rectangle(Point(1000, 6900),
+ Size(aPaperSize.Width() - 2000, 500)),
+ aGradient);
+
+ LineInfo aLineInfo(LineStyle::Solid, 200);
+ const double sind = sin(basegfx::deg2rad(DELTA));
+ const double cosd = cos(basegfx::deg2rad(DELTA));
+ const double factor = 1 + (DELTA / 1000.0);
+ int n = 0;
+ Color aLineColor(0, 0, 0);
+ Color aApproachColor(0, 0, 200);
+
+ while (aP2.X() < aCenter.X() && n++ < 680)
+ {
+ aLineInfo.SetWidth(n / 3);
+ aLineColor = approachColor(aLineColor, aApproachColor);
+ rRenderContext.SetLineColor(aLineColor);
+
+ // switch approach color
+ if (aApproachColor.IsRGBEqual(aLineColor))
+ {
+ if (aApproachColor.GetRed())
+ aApproachColor = Color(0, 0, 200);
+ else if (aApproachColor.GetGreen())
+ aApproachColor = Color(200, 0, 0);
+ else
+ aApproachColor = Color(0, 200, 0);
+ }
+
+ rRenderContext.DrawLine(project(aP1) + aCenter,
+ project(aP2) + aCenter,
+ aLineInfo);
+ aPoint.setX( static_cast<int>((static_cast<double>(aP1.X())*cosd - static_cast<double>(aP1.Y())*sind)*factor) );
+ aPoint.setY( static_cast<int>((static_cast<double>(aP1.Y())*cosd + static_cast<double>(aP1.X())*sind)*factor) );
+ aP1 = aPoint;
+ aPoint.setX( static_cast<int>((static_cast<double>(aP2.X())*cosd - static_cast<double>(aP2.Y())*sind)*factor) );
+ aPoint.setY( static_cast<int>((static_cast<double>(aP2.Y())*cosd + static_cast<double>(aP2.X())*sind)*factor) );
+ aP2 = aPoint;
+ }
+ rRenderContext.Pop();
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/tgafuzzer.cxx b/vcl/workben/tgafuzzer.cxx
new file mode 100644
index 000000000..47ba63b71
--- /dev/null
+++ b/vcl/workben/tgafuzzer.cxx
@@ -0,0 +1,58 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" bool itgGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ Graphic aGraphic;
+ (void)itgGraphicImport(aStream, aGraphic, nullptr);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/tgafuzzer.options b/vcl/workben/tgafuzzer.options
new file mode 100644
index 000000000..678d526b1
--- /dev/null
+++ b/vcl/workben/tgafuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 65536
diff --git a/vcl/workben/tiffuzzer.cxx b/vcl/workben/tiffuzzer.cxx
new file mode 100644
index 000000000..2ca83d7b0
--- /dev/null
+++ b/vcl/workben/tiffuzzer.cxx
@@ -0,0 +1,64 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" bool itiGraphicImport(SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ try
+ {
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ Graphic aGraphic;
+ (void)itiGraphicImport(aStream, aGraphic, nullptr);
+ }
+ catch (...)
+ {
+ }
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/tiffuzzer.options b/vcl/workben/tiffuzzer.options
new file mode 100644
index 000000000..f0ed890b6
--- /dev/null
+++ b/vcl/workben/tiffuzzer.options
@@ -0,0 +1,3 @@
+[libfuzzer]
+max_len = 65536
+dict = tiff.dict
diff --git a/vcl/workben/vcldemo.cxx b/vcl/workben/vcldemo.cxx
new file mode 100644
index 000000000..13bdfed95
--- /dev/null
+++ b/vcl/workben/vcldemo.cxx
@@ -0,0 +1,2450 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <sal/config.h>
+
+#include <memory>
+
+#include <config_features.h>
+
+#include <math.h>
+#include <rtl/math.hxx>
+#include <sal/log.hxx>
+
+#include <comphelper/processfactory.hxx>
+#include <comphelper/random.hxx>
+#include <cppuhelper/bootstrap.hxx>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/lang/XInitialization.hpp>
+#include <com/sun/star/registry/XSimpleRegistry.hpp>
+#include <com/sun/star/ucb/UniversalContentBroker.hpp>
+#include <com/sun/star/uno/Reference.hxx>
+#include <com/sun/star/uno/Sequence.hxx>
+#include <com/sun/star/container/XNameAccess.hpp>
+#include <o3tl/safeint.hxx>
+#include <osl/time.h>
+#include <vcl/gradient.hxx>
+#include <vcl/vclmain.hxx>
+#include <vcl/layout.hxx>
+#include <vcl/ptrstyle.hxx>
+#include <salhelper/thread.hxx>
+
+#include <tools/diagnose_ex.h>
+#include <tools/urlobj.hxx>
+#include <tools/stream.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/pngread.hxx>
+#include <vcl/wrkwin.hxx>
+#include <vcl/virdev.hxx>
+#include <vcl/graphicfilter.hxx>
+#include <vcl/button.hxx>
+#include <vcl/toolkit/combobox.hxx>
+#include <vcl/toolbox.hxx>
+#include <vcl/pngwrite.hxx>
+#include <vcl/floatwin.hxx>
+#include <vcl/bitmapaccess.hxx>
+#include <vcl/help.hxx>
+#include <vcl/menu.hxx>
+#include <vcl/ImageTree.hxx>
+#include <vcl/BitmapEmbossGreyFilter.hxx>
+#include <bitmapwriteaccess.hxx>
+
+#include <basegfx/numeric/ftools.hxx>
+#include <basegfx/matrix/b2dhommatrix.hxx>
+#include <opengl/zone.hxx>
+
+// internal headers for OpenGLTests class.
+#if HAVE_FEATURE_OPENGL
+#include <salgdi.hxx>
+#include <salframe.hxx>
+#include <opengl/gdiimpl.hxx>
+#include <opengl/texture.hxx>
+#include <opengl/framebuffer.hxx>
+#include <vcl/opengl/OpenGLHelper.hxx>
+#endif
+
+#define FIXME_SELF_INTERSECTING_WORKING 0
+#define FIXME_BOUNCE_BUTTON 0
+#define THUMB_REPEAT_FACTOR 10
+
+using namespace com::sun::star;
+
+namespace {
+ double getTimeNow()
+ {
+ TimeValue aValue;
+ osl_getSystemTime(&aValue);
+ return static_cast<double>(aValue.Seconds) * 1000 +
+ static_cast<double>(aValue.Nanosec) / (1000*1000);
+ }
+
+}
+
+namespace {
+
+enum RenderStyle {
+ RENDER_THUMB, // small view <n> to a page
+ RENDER_EXPANDED, // expanded view of this renderer
+};
+
+class DemoRenderer
+{
+ Bitmap maIntroBW;
+ BitmapEx maIntro;
+
+ int mnSegmentsX;
+ int mnSegmentsY;
+
+ struct RenderContext {
+ RenderStyle meStyle;
+ bool mbVDev;
+ DemoRenderer *mpDemoRenderer;
+ Size maSize;
+ };
+ struct RegionRenderer {
+ public:
+ RegionRenderer() :
+ sumTime(0),
+ countTime(0)
+ { }
+ virtual ~RegionRenderer() {}
+ virtual OUString getName() = 0;
+ virtual sal_uInt16 getAccelerator() = 0;
+ virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r,
+ const RenderContext &rCtx) = 0;
+ // repeating count for profiling (to exceed the poor time resolution on Windows)
+ virtual sal_uInt16 getTestRepeatCount() = 0;
+#define RENDER_DETAILS(name,key,repeat) \
+ virtual OUString getName() override \
+ { return SAL_STRINGIFY(name); } \
+ virtual sal_uInt16 getAccelerator() override \
+ { return key; } \
+ virtual sal_uInt16 getTestRepeatCount() override \
+ { return repeat; }
+
+ double sumTime;
+ int countTime;
+ };
+
+ std::vector< RegionRenderer * > maRenderers;
+ sal_Int32 mnSelectedRenderer;
+ sal_Int32 iterCount;
+
+ void InitRenderers();
+
+public:
+ DemoRenderer() : mnSegmentsX(0)
+ , mnSegmentsY(0)
+ , mnSelectedRenderer(-1)
+ , iterCount(0)
+#if FIXME_BOUNCE_BUTTON
+ , mpButton(NULL)
+ , mpButtonWin(NULL)
+ , mnBounceX(1)
+ , mnBounceY(1)
+#endif
+ {
+ if (!Application::LoadBrandBitmap("intro", maIntro))
+ Application::Abort("Failed to load intro image");
+
+ maIntroBW = maIntro.GetBitmap();
+
+ BitmapEx aTmpBmpEx(maIntroBW);
+ BitmapFilter::Filter(aTmpBmpEx, BitmapEmbossGreyFilter(0, 0));
+ maIntroBW = aTmpBmpEx.GetBitmap();
+
+ InitRenderers();
+ mnSegmentsY = rtl::math::round(std::sqrt(maRenderers.size()), 0,
+ rtl_math_RoundingMode_Down);
+ mnSegmentsX = (maRenderers.size() + mnSegmentsY - 1)/mnSegmentsY;
+ }
+
+ OUString getRendererList();
+ double getAndResetBenchmark(RenderStyle style);
+ void selectRenderer(const OUString &rName);
+ int selectNextRenderer();
+ void setIterCount(sal_Int32 iterCount);
+ sal_Int32 getIterCount() const;
+ void addTime(int i, double t);
+
+ Size maSize;
+ void SetSizePixel(const Size &rSize) { maSize = rSize; }
+ const Size& GetSizePixel() const { return maSize; }
+
+
+// more of a 'Window' concept - push upwards ?
+#if FIXME_BOUNCE_BUTTON
+ // Bouncing windows on click ...
+ PushButton *mpButton;
+ FloatingWindow *mpButtonWin;
+ AutoTimer maBounce;
+ int mnBounceX, mnBounceY;
+ DECL_LINK(BounceTimerCb, Timer*, void);
+#endif
+
+ bool MouseButtonDown(const MouseEvent& rMEvt);
+ void KeyInput(const KeyEvent& rKEvt);
+
+ static std::vector<tools::Rectangle> partition(const tools::Rectangle &rRect, int nX, int nY)
+ {
+ std::vector<tools::Rectangle> aRegions = partition(rRect.GetSize(), nX, nY);
+ for (auto & region : aRegions)
+ region.Move(rRect.Left(), rRect.Top());
+
+ return aRegions;
+ }
+
+ static std::vector<tools::Rectangle> partition(const RenderContext &rCtx, int nX, int nY)
+ {
+ return partition(rCtx.maSize, nX, nY);
+ }
+
+ static std::vector<tools::Rectangle> partition(Size aSize, int nX, int nY)
+ {
+ tools::Rectangle r;
+ std::vector<tools::Rectangle> aRegions;
+
+ // Make small cleared area for these guys
+ long nBorderSize = std::min(aSize.Height() / 32, aSize.Width() / 32);
+ long nBoxWidth = (aSize.Width() - nBorderSize*(nX+1)) / nX;
+ long nBoxHeight = (aSize.Height() - nBorderSize*(nY+1)) / nY;
+ for (int y = 0; y < nY; y++)
+ {
+ for (int x = 0; x < nX; x++)
+ {
+ r.SetPos(Point(nBorderSize + (nBorderSize + nBoxWidth) * x,
+ nBorderSize + (nBorderSize + nBoxHeight) * y));
+ r.SetSize(Size(nBoxWidth, nBoxHeight));
+ aRegions.push_back(r);
+ }
+ }
+
+ return aRegions;
+ }
+
+ static void clearRects(OutputDevice &rDev, std::vector<tools::Rectangle> &rRects)
+ {
+ for (size_t i = 0; i < rRects.size(); i++)
+ {
+ // knock up a nice little border
+ rDev.SetLineColor(COL_GRAY);
+ rDev.SetFillColor(COL_LIGHTGRAY);
+ if (i % 2)
+ {
+ int nBorderSize = rRects[i].GetWidth() / 5;
+ rDev.DrawRect(rRects[i], nBorderSize, nBorderSize);
+ }
+ else
+ rDev.DrawRect(rRects[i]);
+ }
+ }
+
+ static void drawBackground(OutputDevice &rDev, const tools::Rectangle& r)
+ {
+ rDev.Erase();
+ Gradient aGradient;
+ aGradient.SetStartColor(COL_BLUE);
+ aGradient.SetEndColor(COL_GREEN);
+ aGradient.SetStyle(GradientStyle::Linear);
+ rDev.DrawGradient(r, aGradient);
+ }
+
+ struct DrawLines : public RegionRenderer
+ {
+ RENDER_DETAILS(lines,KEY_L,100)
+ virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r,
+ const RenderContext &rCtx) override
+ {
+ if (rCtx.meStyle == RENDER_EXPANDED)
+ {
+ AntialiasingFlags nOldAA = rDev.GetAntialiasing();
+ rDev.SetAntialiasing(AntialiasingFlags::EnableB2dDraw);
+
+ std::vector<tools::Rectangle> aRegions(DemoRenderer::partition(rCtx, 4, 4));
+ DemoRenderer::clearRects(rDev, aRegions);
+
+#if 0 // FIXME: get this through to the backend ...
+ double nTransparency[] = {
+ 1.0, 1.0, 1.0, 1.0,
+ 0.8, 0.8, 0.8, 0.8,
+ 0.5, 0.5, 0.5, 0.5,
+ 0.1, 0.1, 0.1, 0.1
+ };
+#endif
+ drawing::LineCap const eLineCaps[] = {
+ drawing::LineCap_BUTT, drawing::LineCap_ROUND, drawing::LineCap_SQUARE, drawing::LineCap_BUTT,
+ drawing::LineCap_BUTT, drawing::LineCap_ROUND, drawing::LineCap_SQUARE, drawing::LineCap_BUTT,
+ drawing::LineCap_BUTT, drawing::LineCap_ROUND, drawing::LineCap_SQUARE, drawing::LineCap_BUTT,
+ drawing::LineCap_BUTT, drawing::LineCap_ROUND, drawing::LineCap_SQUARE, drawing::LineCap_BUTT
+ };
+ basegfx::B2DLineJoin const eJoins[] = {
+ basegfx::B2DLineJoin::NONE, basegfx::B2DLineJoin::Bevel, basegfx::B2DLineJoin::Miter, basegfx::B2DLineJoin::Round,
+ basegfx::B2DLineJoin::NONE, basegfx::B2DLineJoin::Bevel, basegfx::B2DLineJoin::Miter, basegfx::B2DLineJoin::Round,
+ basegfx::B2DLineJoin::NONE, basegfx::B2DLineJoin::Bevel, basegfx::B2DLineJoin::Miter, basegfx::B2DLineJoin::Round,
+ basegfx::B2DLineJoin::NONE, basegfx::B2DLineJoin::Bevel, basegfx::B2DLineJoin::Miter, basegfx::B2DLineJoin::Round
+ };
+ double const aLineWidths[] = {
+ 10.0, 15.0, 20.0, 10.0,
+ 10.0, 15.0, 20.0, 10.0,
+ 10.0, 15.0, 20.0, 10.0,
+ 0.1, 1.0, 10.0, 50.0
+ };
+ for (size_t i = 0; i < aRegions.size(); i++)
+ {
+ // Half of them not-anti-aliased ..
+ if (i >= aRegions.size()/2)
+ rDev.SetAntialiasing(nOldAA);
+
+ static const struct {
+ double nX, nY;
+ } aPoints[] = {
+ { 0.2, 0.2 }, { 0.8, 0.3 }, { 0.7, 0.8 }
+ };
+ rDev.SetLineColor(COL_BLACK);
+ basegfx::B2DPolygon aPoly;
+ tools::Rectangle aSub(aRegions[i]);
+ for (size_t j = 0; j < SAL_N_ELEMENTS(aPoints); j++)
+ {
+ aPoly.append(basegfx::B2DPoint(aSub.Left() + aSub.GetWidth() * aPoints[j].nX,
+ aSub.Top() + aSub.GetHeight() * aPoints[j].nY));
+ }
+ rDev.DrawPolyLine(aPoly, aLineWidths[i], eJoins[i], eLineCaps[i]);
+ }
+ }
+ else
+ {
+ rDev.SetFillColor(COL_LIGHTRED);
+ rDev.SetLineColor(COL_BLACK);
+ rDev.DrawRect(r);
+
+ for(long i=0; i<r.GetHeight(); i+=15)
+ rDev.DrawLine(Point(r.Left(), r.Top()+i), Point(r.Right(), r.Bottom()-i));
+ for(long i=0; i<r.GetWidth(); i+=15)
+ rDev.DrawLine(Point(r.Left()+i, r.Bottom()), Point(r.Right()-i, r.Top()));
+
+ // Should draw a white-line across the middle
+ Color aLastPixel(COL_WHITE);
+ Point aCenter((r.Left() + r.Right())/2 - 4,
+ (r.Top() + r.Bottom())/2 - 4);
+ for(int i=0; i<8; i++)
+ {
+ rDev.DrawPixel(aCenter, aLastPixel);
+ aLastPixel = rDev.GetPixel(aCenter);
+ aCenter.Move(1,1);
+ }
+ }
+ }
+ };
+
+ struct DrawText : public RegionRenderer
+ {
+ RENDER_DETAILS(text,KEY_T,1)
+
+ virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r,
+ const RenderContext &rCtx) override
+ {
+ if (rCtx.meStyle == RENDER_EXPANDED)
+ {
+ std::vector<tools::Rectangle> aToplevelRegions(
+ DemoRenderer::partition(rCtx, 1, 3));
+ std::vector<tools::Rectangle> aSubRegions(
+ DemoRenderer::partition(aToplevelRegions[0], 4, 2));
+ tools::Rectangle aBottom(aToplevelRegions[1].TopLeft(),
+ aToplevelRegions[2].BottomRight());
+ DemoRenderer::clearRects(rDev,aSubRegions);
+ static struct {
+ bool mbClip;
+ bool mbArabicText;
+ bool mbRotate;
+ } const aRenderData[] = {
+ { false, false, false },
+ { false, true, false },
+ { false, true, true },
+ { false, false, true },
+ { true, false, true },
+ { true, true, true },
+ { true, true, false },
+ { true, false, false },
+ };
+
+ size_t i = 0;
+ for (int y = 0; y < 2; y++)
+ {
+ for (int x = 0; x < 4; x++)
+ {
+ assert(i < SAL_N_ELEMENTS(aRenderData));
+ drawText(rDev, aSubRegions[i], aRenderData[i].mbClip,
+ aRenderData[i].mbArabicText, aRenderData[i].mbRotate);
+ i++;
+ }
+ }
+
+ drawComplex(rDev, aBottom);
+ }
+ else
+ {
+ drawText(rDev, r, false, false, false);
+ }
+ }
+
+ static void drawText (OutputDevice &rDev, tools::Rectangle r, bool bClip, bool bArabicText, bool bRotate)
+ {
+ rDev.SetClipRegion( vcl::Region(r) );
+
+ OUString const aLatinText("Click any rect to zoom!!!!");
+
+ const unsigned char pTextUTF8[] = {
+ 0xd9, 0x88, 0xd8, 0xa7, 0xd8, 0xad, 0xd9, 0x90,
+ 0xd8, 0xaf, 0xd9, 0x92, 0x20, 0xd8, 0xa5, 0xd8,
+ 0xab, 0xd9, 0x8d, 0xd9, 0x86, 0xd9, 0x8a, 0xd9,
+ 0x86, 0x20, 0xd8, 0xab, 0xd9, 0x84, 0xd8, 0xa7,
+ 0xd8, 0xab, 0xd8, 0xa9, 0xd9, 0x8c, 0x00
+ };
+ OUString aArabicText( reinterpret_cast<char const *>(pTextUTF8),
+ SAL_N_ELEMENTS( pTextUTF8 ) - 1,
+ RTL_TEXTENCODING_UTF8 );
+
+ OUString aText;
+
+ // To have more text displayed one after the other (overlapping, and in different colours), then
+ // change this value
+ const int nPrintNumCopies=1;
+
+ if (bArabicText)
+ aText = aArabicText;
+ else
+ aText = aLatinText;
+
+ std::vector<OUString> aFontNames;
+
+ static Color const nCols[] = {
+ COL_BLACK, COL_BLUE, COL_GREEN, COL_CYAN, COL_RED, COL_MAGENTA,
+ COL_BROWN, COL_GRAY, COL_LIGHTGRAY, COL_LIGHTBLUE, COL_LIGHTGREEN,
+ COL_LIGHTCYAN, COL_LIGHTRED, COL_LIGHTMAGENTA, COL_YELLOW, COL_WHITE
+ };
+
+ // a few fonts to start with
+ const char *pNames[] = {
+ "Times", "Liberation Sans", "Arial", "Linux Biolinum G", "Linux Libertine Display G"
+ };
+
+ for (size_t i = 0; i < SAL_N_ELEMENTS(pNames); i++)
+ aFontNames.push_back(OUString::createFromAscii(pNames[i]));
+
+ if (bClip && !bRotate)
+ {
+ // only show the first quarter of the text
+ tools::Rectangle aRect( r.TopLeft(), Size( r.GetWidth()/2, r.GetHeight()/2 ) );
+ rDev.SetClipRegion( vcl::Region( aRect ) );
+ }
+
+ for (int i = 1; i < nPrintNumCopies+1; i++)
+ {
+ int nFontHeight=0, nFontIndex=0, nFontColorIndex=0;
+
+ if (nPrintNumCopies == 1)
+ {
+ float const nFontMagnitude = 0.25f;
+ // random font size to avoid buffering
+ nFontHeight = 1 + nFontMagnitude * (0.9 + comphelper::rng::uniform_real_distribution(0.0, std::nextafter(0.1, DBL_MAX))) * (r.Bottom() - r.Top());
+ nFontIndex=0;
+ nFontColorIndex=0;
+ }
+ else
+ {
+ // random font size to avoid buffering
+ nFontHeight = 1 + i * (0.9 + comphelper::rng::uniform_real_distribution(0.0, std::nextafter(0.1, DBL_MAX))) * (r.Top() - r.Bottom()) / nPrintNumCopies;
+ nFontIndex = (i % aFontNames.size());
+ nFontColorIndex=(i % aFontNames.size());
+ }
+
+ rDev.SetTextColor(nCols[nFontColorIndex]);
+ vcl::Font aFont( aFontNames[nFontIndex], Size(0, nFontHeight ));
+
+ if (bRotate)
+ {
+ tools::Rectangle aFontRect = r;
+
+ int nHeight = r.GetHeight();
+
+ // move the text to the bottom of the bounding rect before rotating
+ aFontRect.AdjustTop(nHeight/2 );
+ aFontRect.AdjustBottom(nHeight );
+
+ aFont.SetOrientation(45 * 10); // 45 degrees
+
+ rDev.SetFont(aFont);
+ rDev.DrawText(aFontRect, aText);
+
+ if (bClip)
+ {
+ tools::Rectangle aClipRect( Point( r.Left(), r.Top() + ( r.GetHeight()/2 ) ) , Size( r.GetWidth()/2, r.GetHeight()/2 ) );
+ rDev.SetClipRegion( vcl::Region( aClipRect ) );
+ }
+ else
+ rDev.SetClipRegion( vcl::Region(r) );
+ }
+ else
+ {
+ rDev.SetFont(aFont);
+ rDev.DrawText(r, aText);
+ }
+ }
+
+ rDev.SetClipRegion();
+ }
+
+ static void drawComplex (OutputDevice &rDev, tools::Rectangle r)
+ {
+ const unsigned char pInvalid[] = { 0xfe, 0x1f, 0 };
+ const unsigned char pDiacritic1[] = { 0x61, 0xcc, 0x8a, 0xcc, 0x8c, 0 };
+ const unsigned char pDiacritic2[] = { 0x61, 0xcc, 0x88, 0xcc, 0x86, 0 };
+ const unsigned char pDiacritic3[] = { 0x61, 0xcc, 0x8b, 0xcc, 0x87, 0 };
+ const unsigned char pJustification[] = {
+ 0x64, 0x20, 0xc3, 0xa1, 0xc3, 0xa9, 0x77, 0xc4, 0x8d,
+ 0xc5, 0xa1, 0xc3, 0xbd, 0xc5, 0x99, 0x20, 0xc4, 0x9b, 0
+ };
+ const unsigned char pEmojis[] = {
+ 0xf0, 0x9f, 0x8d, 0x80, 0xf0, 0x9f, 0x91, 0x98,
+ 0xf0, 0x9f, 0x92, 0x8a, 0xf0, 0x9f, 0x92, 0x99,
+ 0xf0, 0x9f, 0x92, 0xa4, 0xf0, 0x9f, 0x94, 0x90, 0
+ };
+ const unsigned char pThreeBowlG[] = {
+ 0xe2, 0x9a, 0x82, 0xe2, 0x99, 0xa8, 0xc4, 0x9e, 0
+ };
+ const unsigned char pWavesAndDomino[] = {
+ 0xe2, 0x99, 0x92, 0xf0, 0x9f, 0x81, 0xa0,
+ 0xf0, 0x9f, 0x82, 0x93, 0
+ };
+ const unsigned char pSpadesAndBits[] = {
+ 0xf0, 0x9f, 0x82, 0xa1, 0xc2, 0xa2, 0xc2, 0xa2, 0
+ };
+
+ static struct {
+ const char *mpFont;
+ const char *mpString;
+ } const aRuns[] = {
+#define SET(font,string) { font, reinterpret_cast<const char *>(string) }
+ {"sans", "a"}, // logical font - no 'sans' font.
+ {"opensymbol", "#$%"}, // font fallback - $ is missing.
+ SET("sans", pInvalid), // unicode invalid character
+ // tdf#96266 - stacking diacritics
+ SET("carlito", pDiacritic1),
+ SET("carlito", pDiacritic2),
+ SET("carlito", pDiacritic3),
+ SET("liberation sans", pDiacritic1),
+ SET("liberation sans", pDiacritic2),
+ SET("liberation sans", pDiacritic3),
+ SET("liberation sans", pDiacritic3),
+
+ // tdf#95222 - justification issue
+ // - FIXME: replicate justification
+ SET("gentium basic", pJustification),
+
+ // tdf#97319 - Unicode beyond BMP; SMP & Plane 2
+ SET("symbola", pEmojis),
+ SET("symbola", pThreeBowlG),
+ SET("symbola", pWavesAndDomino),
+ SET("symbola", pSpadesAndBits),
+ };
+
+ // Nice clean white background
+ rDev.DrawWallpaper(r, Wallpaper(COL_WHITE));
+ rDev.SetClipRegion(vcl::Region(r));
+
+ Point aPos(r.Left(), r.Top()+20);
+
+ long nMaxTextHeight = 0;
+ for (size_t i = 0; i < SAL_N_ELEMENTS(aRuns); ++i)
+ {
+ // Legend
+ vcl::Font aIndexFont("sans", Size(0,20));
+ aIndexFont.SetColor( COL_BLACK);
+ tools::Rectangle aTextRect;
+ rDev.SetFont(aIndexFont);
+ OUString aText = OUString::number(i) + ".";
+ rDev.DrawText(aPos, aText);
+ if (rDev.GetTextBoundRect(aTextRect, aText))
+ aPos.Move(aTextRect.GetWidth() + 8, 0);
+
+ // Text
+ FontWeight aWeights[] = { WEIGHT_NORMAL,
+ WEIGHT_BOLD,
+ WEIGHT_NORMAL };
+ FontItalic const aItalics[] = { ITALIC_NONE,
+ ITALIC_NONE,
+ ITALIC_NORMAL };
+ vcl::Font aFont(OUString::createFromAscii(
+ aRuns[i].mpFont),
+ Size(0,42));
+ aFont.SetColor(COL_BLACK);
+ for (size_t j = 0; j < SAL_N_ELEMENTS(aWeights); ++j)
+ {
+ aFont.SetItalic(aItalics[j]);
+ aFont.SetWeight(aWeights[j]);
+ rDev.SetFont(aFont);
+
+ OUString aString(aRuns[i].mpString,
+ strlen(aRuns[i].mpString),
+ RTL_TEXTENCODING_UTF8);
+ long nNewX = drawStringBox(rDev, aPos, aString,
+ nMaxTextHeight);
+
+ aPos.setX( nNewX );
+
+ if (aPos.X() >= r.Right())
+ {
+ aPos = Point(r.Left(), aPos.Y() + nMaxTextHeight + 15);
+ nMaxTextHeight = 0;
+ if(j>0)
+ j--; // re-render the last point.
+ }
+ if (aPos.Y() > r.Bottom())
+ break;
+ }
+ if (aPos.Y() > r.Bottom())
+ break;
+ }
+
+ rDev.SetClipRegion();
+ }
+ // render text, bbox, DX arrays etc.
+ static long drawStringBox(OutputDevice &rDev, Point aPos,
+ const OUString &aText,
+ long &nMaxTextHeight)
+ {
+ rDev.Push();
+ {
+ tools::Rectangle aTextRect;
+
+ rDev.DrawText(aPos,aText);
+
+ if (rDev.GetTextBoundRect(aTextRect, aText))
+ {
+ aTextRect.Move(aPos.X(), aPos.Y());
+ rDev.SetFillColor();
+ rDev.SetLineColor(COL_BLACK);
+ rDev.DrawRect(aTextRect);
+ if (aTextRect.GetHeight() > nMaxTextHeight)
+ nMaxTextHeight = aTextRect.GetHeight();
+ // This should intersect with the text
+ tools::Rectangle aInnerRect(
+ aTextRect.Left()+1, aTextRect.Top()+1,
+ aTextRect.Right()-1, aTextRect.Bottom()-1);
+ rDev.SetLineColor(COL_WHITE);
+ rDev.SetRasterOp(RasterOp::Xor);
+ rDev.DrawRect(aInnerRect);
+ rDev.SetRasterOp(RasterOp::OverPaint);
+ }
+
+ // DX array rendering
+ std::unique_ptr<long[]> pItems(new long[aText.getLength()+10]);
+ rDev.GetTextArray(aText, pItems.get());
+ for (long j = 0; j < aText.getLength(); ++j)
+ {
+ Point aTop = aTextRect.TopLeft();
+ Point aBottom = aTop;
+ aTop.Move(pItems[j], 0);
+ aBottom.Move(pItems[j], aTextRect.GetHeight());
+ rDev.SetLineColor(COL_RED);
+ rDev.SetRasterOp(RasterOp::Xor);
+ rDev.DrawLine(aTop,aBottom);
+ rDev.SetRasterOp(RasterOp::OverPaint);
+ }
+
+ aPos.Move(aTextRect.GetWidth() + 16, 0);
+ }
+ rDev.Pop();
+ return aPos.X();
+ }
+ };
+
+ struct DrawCheckered : public RegionRenderer
+ {
+ RENDER_DETAILS(checks,KEY_C,20)
+ virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r,
+ const RenderContext &rCtx) override
+ {
+ if (rCtx.meStyle == RENDER_EXPANDED)
+ {
+ std::vector<tools::Rectangle> aRegions(DemoRenderer::partition(rCtx, 2, 2));
+ for (size_t i = 0; i < aRegions.size(); i++)
+ {
+ vcl::Region aRegion;
+ tools::Rectangle aSub(aRegions[i]);
+ tools::Rectangle aSmaller(aSub);
+ aSmaller.Move(10,10);
+ aSmaller.setWidth(aSmaller.getWidth()-20);
+ aSmaller.setHeight(aSmaller.getHeight()-24);
+ switch (i) {
+ case 0:
+ aRegion = vcl::Region(aSub);
+ break;
+ case 1:
+ aRegion = vcl::Region(aSmaller);
+ aRegion.XOr(aSub);
+ break;
+ case 2:
+ {
+ tools::Polygon aPoly(aSub);
+ aPoly.Rotate(aSub.Center(), 450);
+ aPoly.Clip(aSmaller);
+ aRegion = vcl::Region(aPoly);
+ break;
+ }
+ case 3:
+ {
+ tools::PolyPolygon aPolyPoly;
+ sal_Int32 nTW = aSub.GetWidth()/6;
+ sal_Int32 nTH = aSub.GetHeight()/6;
+ tools::Rectangle aTiny(Point(4, 4), Size(nTW*2, nTH*2));
+ aPolyPoly.Insert( tools::Polygon(aTiny));
+ aTiny.Move(nTW*3, nTH*3);
+ aPolyPoly.Insert( tools::Polygon(aTiny));
+ aTiny.Move(nTW, nTH);
+ aPolyPoly.Insert( tools::Polygon(aTiny));
+
+ aRegion = vcl::Region(aPolyPoly);
+ break;
+ }
+ } // switch
+ rDev.SetClipRegion(aRegion);
+ rDev.DrawCheckered(aSub.TopLeft(), aSub.GetSize());
+ rDev.SetClipRegion();
+ }
+ }
+ else
+ {
+ rDev.DrawCheckered(r.TopLeft(), r.GetSize());
+ }
+ }
+ };
+
+ struct DrawPoly : public RegionRenderer
+ {
+ RENDER_DETAILS(poly,KEY_P,20)
+ DrawCheckered maCheckered;
+ virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r,
+ const RenderContext &rCtx) override
+ {
+ maCheckered.RenderRegion(rDev, r, rCtx);
+
+ long nDx = r.GetWidth()/20;
+ long nDy = r.GetHeight()/20;
+ tools::Rectangle aShrunk(r);
+ aShrunk.Move(nDx, nDy);
+ aShrunk.SetSize(Size(r.GetWidth()-nDx*2,
+ r.GetHeight()-nDy*2));
+ tools::Polygon aPoly(aShrunk);
+ tools::PolyPolygon aPPoly(aPoly);
+ rDev.SetLineColor(COL_RED);
+ rDev.SetFillColor(COL_RED);
+ // This hits the optional 'drawPolyPolygon' code-path
+ rDev.DrawTransparent(aPPoly, 64);
+ }
+ };
+
+ struct DrawEllipse : public RegionRenderer
+ {
+ RENDER_DETAILS(ellipse,KEY_E,500)
+ static void doInvert(OutputDevice &rDev, const tools::Rectangle &r,
+ InvertFlags nFlags)
+ {
+ rDev.Invert(r, nFlags);
+ if (r.GetWidth() > 10 && r.GetHeight() > 10)
+ {
+ tools::Rectangle aSmall(r.Center()-Point(4,4), Size(8,8));
+ rDev.Invert(aSmall,nFlags);
+ }
+ }
+ virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r,
+ const RenderContext &rCtx) override
+ {
+ rDev.SetLineColor(COL_RED);
+ rDev.SetFillColor(COL_GREEN);
+ rDev.DrawEllipse(r);
+
+ if (rCtx.meStyle == RENDER_EXPANDED)
+ {
+ auto aRegions = partition(rCtx, 2, 2);
+ doInvert(rDev, aRegions[0], InvertFlags::NONE);
+ rDev.DrawText(aRegions[0], "InvertFlags::NONE");
+ doInvert(rDev, aRegions[1], InvertFlags::N50);
+ rDev.DrawText(aRegions[1], "InvertFlags::N50");
+ doInvert(rDev, aRegions[3], InvertFlags::TrackFrame);
+ rDev.DrawText(aRegions[3], "InvertFlags::TrackFrame");
+ }
+ }
+ };
+
+ struct DrawGradient : public RegionRenderer
+ {
+ RENDER_DETAILS(gradient,KEY_G,50)
+ virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r,
+ const RenderContext &rCtx) override
+ {
+ if (rCtx.meStyle == RENDER_EXPANDED)
+ {
+ std::vector<tools::Rectangle> aRegions(DemoRenderer::partition(rCtx,5, 4));
+ static Color const nStartCols[] = {
+ COL_RED, COL_RED, COL_RED, COL_GREEN, COL_GREEN,
+ COL_BLUE, COL_BLUE, COL_BLUE, COL_CYAN, COL_CYAN,
+ COL_BLACK, COL_LIGHTGRAY, COL_WHITE, COL_BLUE, COL_CYAN,
+ COL_WHITE, COL_WHITE, COL_WHITE, COL_BLACK, COL_BLACK
+ };
+ static Color const nEndCols[] = {
+ COL_WHITE, COL_WHITE, COL_WHITE, COL_BLACK, COL_BLACK,
+ COL_RED, COL_RED, COL_RED, COL_GREEN, COL_GREEN,
+ COL_GRAY, COL_GRAY, COL_LIGHTGRAY, COL_LIGHTBLUE, COL_LIGHTCYAN,
+ COL_BLUE, COL_BLUE, COL_BLUE, COL_CYAN, COL_CYAN
+ };
+ GradientStyle eStyles[] = {
+ GradientStyle::Linear, GradientStyle::Axial, GradientStyle::Radial, GradientStyle::Elliptical, GradientStyle::Square,
+ GradientStyle::Rect, GradientStyle::FORCE_EQUAL_SIZE, GradientStyle::Linear, GradientStyle::Radial, GradientStyle::Linear,
+ GradientStyle::Linear, GradientStyle::Axial, GradientStyle::Radial, GradientStyle::Elliptical, GradientStyle::Square,
+ GradientStyle::Rect, GradientStyle::FORCE_EQUAL_SIZE, GradientStyle::Linear, GradientStyle::Radial, GradientStyle::Linear
+ };
+ sal_uInt16 nAngles[] = {
+ 0, 0, 0, 0, 0,
+ 15, 30, 45, 60, 75,
+ 90, 120, 135, 160, 180,
+ 0, 0, 0, 0, 0
+ };
+ sal_uInt16 nBorders[] = {
+ 0, 0, 0, 0, 0,
+ 1, 10, 100, 10, 1,
+ 0, 0, 0, 0, 0,
+ 1, 10, 20, 10, 1,
+ 0, 0, 0, 0, 0
+ };
+ DemoRenderer::clearRects(rDev, aRegions);
+ assert(aRegions.size() <= SAL_N_ELEMENTS(nStartCols));
+ assert(aRegions.size() <= SAL_N_ELEMENTS(nEndCols));
+ assert(aRegions.size() <= SAL_N_ELEMENTS(eStyles));
+ assert(aRegions.size() <= SAL_N_ELEMENTS(nAngles));
+ assert(aRegions.size() <= SAL_N_ELEMENTS(nBorders));
+ for (size_t i = 0; i < aRegions.size(); i++)
+ {
+ tools::Rectangle aSub = aRegions[i];
+ Gradient aGradient;
+ aGradient.SetStartColor(nStartCols[i]);
+ aGradient.SetEndColor(nEndCols[i]);
+ aGradient.SetStyle(eStyles[i]);
+ aGradient.SetAngle(nAngles[i]);
+ aGradient.SetBorder(nBorders[i]);
+ rDev.DrawGradient(aSub, aGradient);
+ }
+ }
+ else
+ {
+ Gradient aGradient;
+ aGradient.SetStartColor(COL_YELLOW);
+ aGradient.SetEndColor(COL_RED);
+ aGradient.SetStyle(GradientStyle::Rect);
+ aGradient.SetBorder(r.GetSize().Width()/20);
+ rDev.DrawGradient(r, aGradient);
+ }
+ }
+ };
+
+ struct DrawBitmap : public RegionRenderer
+ {
+ RENDER_DETAILS(bitmap,KEY_B,10)
+
+ // Simulate Page Borders rendering - which ultimately should
+ // be done with a shader / gradient
+ static void SimulateBorderStretch(OutputDevice &rDev, const tools::Rectangle& r)
+ {
+ BitmapEx aPageShadowMask("sw/res/page-shadow-mask.png");
+
+ BitmapEx aRight(aPageShadowMask);
+ sal_Int32 nSlice = (aPageShadowMask.GetSizePixel().Width() - 3) / 4;
+ // a width x 1 slice
+ aRight.Crop(tools::Rectangle(Point((nSlice * 3) + 3, (nSlice * 2) + 1),
+ Size(nSlice, 1)));
+ AlphaMask aAlphaMask(aRight.GetBitmap());
+ Bitmap aBlockColor(aAlphaMask.GetSizePixel(), 24);
+ aBlockColor.Erase(COL_RED);
+ BitmapEx aShadowStretch(aBlockColor, aAlphaMask);
+
+ Point aRenderPt(r.TopLeft());
+
+ long aSizes[] = { 200, 100, 200, 100, 50, 5, 2 };
+
+ // and yes - we really do this in the page border rendering code ...
+ for (size_t i = 0; i < SAL_N_ELEMENTS(aSizes); i++)
+ {
+ aShadowStretch.Scale(Size(aShadowStretch.GetSizePixel().Width(), aSizes[i]),
+ BmpScaleFlag::Fast);
+
+ rDev.DrawBitmapEx(aRenderPt, aShadowStretch);
+ aRenderPt.Move(aShadowStretch.GetSizePixel().Width() + 4, 0);
+ }
+
+ AlphaMask aWholeMask(aPageShadowMask.GetBitmap());
+ aBlockColor = Bitmap(aPageShadowMask.GetSizePixel(), 24);
+ aBlockColor.Erase(COL_GREEN);
+ BitmapEx aWhole(aBlockColor, aWholeMask);
+
+ aRenderPt = r.Center();
+ aRenderPt.Move(nSlice+1, 0);
+
+ // An offset background for alpha rendering
+ rDev.SetFillColor(COL_BLUE);
+ tools::Rectangle aSurround(r.Center(), aPageShadowMask.GetSizePixel());
+ rDev.DrawRect(aSurround);
+ rDev.DrawBitmapEx(aRenderPt, aWhole);
+ }
+
+ virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r,
+ const RenderContext &rCtx) override
+ {
+ Bitmap aBitmap(rCtx.mpDemoRenderer->maIntroBW);
+ aBitmap.Scale(r.GetSize(), BmpScaleFlag::BestQuality);
+ rDev.DrawBitmap(r.TopLeft(), aBitmap);
+
+ SimulateBorderStretch(rDev, r);
+ }
+ };
+
+ struct DrawBitmapEx : public RegionRenderer
+ {
+ RENDER_DETAILS(bitmapex,KEY_X,2)
+ DrawCheckered maCheckered;
+ virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r,
+ const RenderContext &rCtx) override
+ {
+ maCheckered.RenderRegion(rDev, r, rCtx);
+
+ BitmapEx aBitmap(rCtx.mpDemoRenderer->maIntro);
+ aBitmap.Scale(r.GetSize(), BmpScaleFlag::BestQuality);
+ AlphaMask aSemiTransp(aBitmap.GetSizePixel());
+ aSemiTransp.Erase(64);
+ rDev.DrawBitmapEx(r.TopLeft(), BitmapEx(aBitmap.GetBitmap(),
+ aSemiTransp));
+ }
+ };
+
+ struct DrawPolyPolygons : public RegionRenderer
+ {
+ RENDER_DETAILS(polypoly,KEY_N,100)
+ virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r,
+ const RenderContext &) override
+ {
+ static struct {
+ double nX, nY;
+ } const aPoints[] = { { 0.1, 0.1 }, { 0.9, 0.9 },
+#if FIXME_SELF_INTERSECTING_WORKING
+ { 0.9, 0.1 }, { 0.1, 0.9 },
+ { 0.1, 0.1 }
+#else
+ { 0.1, 0.9 }, { 0.5, 0.5 },
+ { 0.9, 0.1 }, { 0.1, 0.1 }
+#endif
+ };
+
+ tools::PolyPolygon aPolyPoly;
+ // Render 4x polygons & aggregate into another PolyPolygon
+ for (int x = 0; x < 2; x++)
+ {
+ for (int y = 0; y < 2; y++)
+ {
+ tools::Rectangle aSubRect(r);
+ aSubRect.Move(x * r.GetWidth()/3, y * r.GetHeight()/3);
+ aSubRect.SetSize(Size(r.GetWidth()/2, r.GetHeight()/4));
+ tools::Polygon aPoly(SAL_N_ELEMENTS(aPoints));
+ for (size_t v = 0; v < SAL_N_ELEMENTS(aPoints); v++)
+ {
+ aPoly.SetPoint(Point(aSubRect.Left() +
+ aSubRect.GetWidth() * aPoints[v].nX,
+ aSubRect.Top() +
+ aSubRect.GetHeight() * aPoints[v].nY),
+ v);
+ }
+ rDev.SetLineColor(COL_YELLOW);
+ rDev.SetFillColor(COL_BLACK);
+ rDev.DrawPolygon(aPoly);
+
+ // now move and add to the polypolygon
+ aPoly.Move(0, r.GetHeight()/2);
+ aPolyPoly.Insert(aPoly);
+ }
+ }
+ rDev.SetLineColor(COL_LIGHTRED);
+ rDev.SetFillColor(COL_GREEN);
+ rDev.DrawTransparent(aPolyPoly, 50);
+ }
+ };
+
+ struct DrawClipped : public RegionRenderer
+ {
+ RENDER_DETAILS(clip,KEY_D,10)
+ virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r,
+ const RenderContext &) override
+ {
+ std::vector<tools::Rectangle> aRegions(DemoRenderer::partition(r, 2, 2));
+ const int nLimits[] = { 4, -100 };
+ for (int i = 0; i < 2; ++i)
+ {
+ sal_uInt16 nHue = 0;
+ rDev.Push(PushFlags::CLIPREGION);
+ tools::Rectangle aOuter = aRegions[i];
+ tools::Rectangle aInner = aOuter;
+ while (aInner.GetWidth() > nLimits[i] && aInner.GetHeight() > nLimits[i])
+ {
+ aInner.expand(-1);
+ rDev.SetClipRegion(vcl::Region(aInner));
+ rDev.SetFillColor(Color::HSBtoRGB(nHue, 75, 100));
+ nHue = (nHue + 97) % 360;
+ rDev.DrawRect(aOuter);
+ }
+ rDev.Pop();
+ }
+
+ {
+ sal_uInt16 nHue = 0;
+ tools::Rectangle aOuter = aRegions[2];
+ std::vector<tools::Rectangle> aPieces(DemoRenderer::partition(aOuter, 2, 2));
+ for (int j = 0; j < std::min(aOuter.GetWidth(), aOuter.GetHeight())/5; ++j)
+ {
+ rDev.Push(PushFlags::CLIPREGION);
+
+ vcl::Region aClipRegion;
+ for (int i = 0; i < 4; ++i)
+ {
+ aPieces[i].expand(-1);
+ aPieces[i].Move(2 - i/2, 2 - i/2);
+ aClipRegion.Union(aPieces[i]);
+ }
+ assert (aClipRegion.getRegionBand());
+ rDev.SetClipRegion(aClipRegion);
+ rDev.SetFillColor(Color::HSBtoRGB(nHue, 75, 75));
+ nHue = (nHue + 97) % 360;
+ rDev.DrawRect(aOuter);
+
+ rDev.Pop();
+ }
+ }
+
+ {
+ sal_uInt16 nHue = 0;
+ tools::Rectangle aOuter = aRegions[3];
+ std::vector<tools::Rectangle> aPieces(DemoRenderer::partition(aOuter, 2, 2));
+ bool bDone = false;
+ for (int j = 0; !bDone; ++j)
+ {
+ rDev.Push(PushFlags::CLIPREGION);
+
+ for (int i = 0; i < 4; ++i)
+ {
+ vcl::Region aClipRegion;
+ tools::Polygon aPoly;
+ switch (i) {
+ case 3:
+ case 0: // 45degree rectangle.
+ aPoly = tools::Polygon(aPieces[i]);
+ aPoly.Rotate(aPieces[i].Center(), 450);
+ break;
+ case 1: // arc
+ aPoly = tools::Polygon(aPieces[i],
+ aPieces[i].TopLeft(),
+ aPieces[i].BottomRight());
+ break;
+ case 2:
+ aPoly = tools::Polygon(aPieces[i],
+ aPieces[i].GetWidth()/5,
+ aPieces[i].GetHeight()/5);
+ aPoly.Rotate(aPieces[i].Center(), 450);
+ break;
+ }
+ aClipRegion = vcl::Region(aPoly);
+ aPieces[i].expand(-1);
+ aPieces[i].Move(2 - i/2, 2 - i/2);
+
+ bDone = aPieces[i].GetWidth() < 4 ||
+ aPieces[i].GetHeight() < 4;
+
+ if (!bDone)
+ {
+ assert (!aClipRegion.getRegionBand());
+
+ rDev.SetClipRegion(aClipRegion);
+ rDev.SetFillColor(Color::HSBtoRGB(nHue, 50, 75));
+ nHue = (nHue + 97) % 360;
+ rDev.DrawRect(aOuter);
+ }
+ }
+
+ rDev.Pop();
+ }
+ }
+ }
+ };
+
+ struct DrawToVirtualDevice : public RegionRenderer
+ {
+ RENDER_DETAILS(vdev,KEY_V,1)
+ enum RenderType {
+ RENDER_AS_BITMAP,
+ RENDER_AS_OUTDEV,
+ RENDER_AS_BITMAPEX,
+ RENDER_AS_ALPHA_OUTDEV
+ };
+
+ static void SizeAndRender(OutputDevice &rDev, const tools::Rectangle& r, RenderType eType,
+ const RenderContext &rCtx)
+ {
+ ScopedVclPtr<VirtualDevice> pNested;
+
+ if (static_cast<int>(eType) < RENDER_AS_BITMAPEX)
+ pNested = VclPtr<VirtualDevice>::Create(rDev).get();
+ else
+ pNested = VclPtr<VirtualDevice>::Create(rDev,DeviceFormat::DEFAULT,DeviceFormat::DEFAULT).get();
+
+ pNested->SetOutputSizePixel(r.GetSize());
+ tools::Rectangle aWhole(Point(0,0), r.GetSize());
+
+ // mini me
+ rCtx.mpDemoRenderer->drawToDevice(*pNested, r.GetSize(), true);
+
+ if (eType == RENDER_AS_BITMAP)
+ {
+ Bitmap aBitmap(pNested->GetBitmap(Point(0,0),aWhole.GetSize()));
+ rDev.DrawBitmap(r.TopLeft(), aBitmap);
+ }
+ else if (eType == RENDER_AS_BITMAPEX)
+ {
+ BitmapEx aBitmapEx(pNested->GetBitmapEx(Point(0,0),aWhole.GetSize()));
+ rDev.DrawBitmapEx(r.TopLeft(), aBitmapEx);
+ }
+ else if (eType == RENDER_AS_OUTDEV ||
+ eType == RENDER_AS_ALPHA_OUTDEV)
+ {
+ rDev.DrawOutDev(r.TopLeft(), r.GetSize(),
+ aWhole.TopLeft(), aWhole.GetSize(),
+ *pNested);
+ }
+ }
+ virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r,
+ const RenderContext &rCtx) override
+ {
+ // avoid infinite recursion
+ if (rCtx.mbVDev)
+ return;
+
+ if (rCtx.meStyle == RENDER_EXPANDED)
+ {
+ std::vector<tools::Rectangle> aRegions(DemoRenderer::partition(rCtx,2, 2));
+ DemoRenderer::clearRects(rDev, aRegions);
+
+ RenderType const eRenderTypes[] { RENDER_AS_BITMAP, RENDER_AS_OUTDEV,
+ RENDER_AS_BITMAPEX, RENDER_AS_ALPHA_OUTDEV };
+ for (size_t i = 0; i < aRegions.size(); i++)
+ SizeAndRender(rDev, aRegions[i], eRenderTypes[i], rCtx);
+ }
+ else
+ SizeAndRender(rDev, r, RENDER_AS_BITMAP, rCtx);
+ }
+ };
+
+ struct DrawXOR : public RegionRenderer
+ {
+ RENDER_DETAILS(xor,KEY_X,1)
+
+ virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r,
+ const RenderContext &rCtx) override
+ {
+ // avoid infinite recursion
+ if (rCtx.mbVDev)
+ return;
+
+ rDev.Push();
+
+ AntialiasingFlags nFlags = rDev.GetAntialiasing();
+ rDev.SetAntialiasing(nFlags & ~AntialiasingFlags::EnableB2dDraw);
+ rDev.SetRasterOp( RasterOp::Xor );
+
+ rCtx.mpDemoRenderer->drawThumbs(rDev, r, true);
+
+ rDev.Pop();
+ }
+ };
+
+ struct DrawIcons : public RegionRenderer
+ {
+ RENDER_DETAILS(icons,KEY_I,1)
+
+ std::vector<OUString> maIconNames;
+ std::vector<BitmapEx> maIcons;
+ bool bHasLoadedAll;
+ DrawIcons() : bHasLoadedAll(false)
+ {
+ // a few icons to start with
+ const char *pNames[] = {
+ "cmd/lc_openurl.png",
+ "cmd/lc_newdoc.png",
+ "cmd/lc_choosemacro.png",
+ "cmd/lc_save.png",
+ "cmd/lc_saveas.png",
+ "cmd/lc_importdialog.png",
+ "cmd/lc_sendmail.png",
+ "cmd/lc_editdoc.png",
+ "cmd/lc_print.png",
+ "cmd/lc_combobox.png",
+ "cmd/lc_insertformcombo.png",
+ "cmd/lc_printpreview.png",
+ "cmd/lc_cut.png",
+ "cmd/lc_copy.png",
+ "cmd/lc_paste.png",
+ "cmd/sc_autopilotmenu.png",
+ "cmd/lc_formatpaintbrush.png",
+ "cmd/lc_undo.png",
+ "cmd/lc_redo.png",
+ "cmd/lc_marks.png",
+ "cmd/lc_fieldnames.png",
+ "cmd/lc_hyperlinkdialog.png",
+ "cmd/lc_basicshapes.rectangle.png",
+ "cmd/lc_basicshapes.round-rectangle.png"
+ };
+ for (size_t i = 0; i < SAL_N_ELEMENTS(pNames); i++)
+ {
+ maIconNames.push_back(OUString::createFromAscii(pNames[i]));
+ maIcons.emplace_back(maIconNames[i]);
+ }
+ }
+
+ void LoadAllImages()
+ {
+ if (bHasLoadedAll)
+ return;
+ bHasLoadedAll = true;
+
+ css::uno::Reference<css::container::XNameAccess> xRef(ImageTree::get().getNameAccess());
+ const css::uno::Sequence< OUString > aAllIcons = xRef->getElementNames();
+
+ for (const auto& rIcon : aAllIcons)
+ {
+ if (rIcon.endsWithIgnoreAsciiCase("svg"))
+ continue; // too slow to load.
+ maIconNames.push_back(rIcon);
+ maIcons.emplace_back(rIcon);
+ }
+ }
+
+ void doDrawIcons(OutputDevice &rDev, tools::Rectangle r, bool bExpanded)
+ {
+ long nMaxH = 0;
+ Point p(r.LeftCenter());
+ size_t nToRender = maIcons.size();
+
+ if (!bExpanded && maIcons.size() > 64)
+ nToRender = 64;
+ for (size_t i = 0; i < nToRender; i++)
+ {
+ Size aSize(maIcons[i].GetSizePixel());
+// sAL_DEBUG("Draw icon '" << maIconNames[i] << "'");
+
+ if (!(i % 4))
+ rDev.DrawBitmapEx(p, maIcons[i]);
+ else
+ {
+ basegfx::B2DHomMatrix aTransform;
+ aTransform.scale(aSize.Width(), aSize.Height());
+ switch (i % 4)
+ {
+ case 2:
+ aTransform.shearX(static_cast<double>((i >> 2) % 8) / 8);
+ aTransform.shearY(static_cast<double>((i >> 4) % 8) / 8);
+ break;
+ case 3:
+ aTransform.translate(-aSize.Width()/2, -aSize.Height()/2);
+ aTransform.rotate(i);
+ if (i & 0x100)
+ {
+ aTransform.shearX(static_cast<double>((i >> 2) % 8) / 8);
+ aTransform.shearY(static_cast<double>((i >> 4) % 8) / 8);
+ }
+ aTransform.translate(aSize.Width()/2, aSize.Height()/2);
+ break;
+ default:
+ aTransform.translate(-aSize.Width()/2, -aSize.Height()/2);
+ aTransform.rotate(2 * F_2PI * i / nToRender);
+ aTransform.translate(aSize.Width()/2, aSize.Height()/2);
+ break;
+ }
+ aTransform.translate(p.X(), p.Y());
+ rDev.DrawTransformedBitmapEx(aTransform, maIcons[i]);
+ }
+
+ // next position
+ p.Move(aSize.Width(), 0);
+ if (aSize.Height() > nMaxH)
+ nMaxH = aSize.Height();
+ if (p.X() >= r.Right()) // wrap to next line
+ {
+ p = Point(r.Left(), p.Y() + nMaxH);
+ nMaxH = 0;
+ }
+ if (p.Y() >= r.Bottom()) // re-start at middle
+ p = r.LeftCenter();
+ }
+ }
+
+ static BitmapEx AlphaRecovery(OutputDevice &rDev, Point aPt, BitmapEx const &aSrc)
+ {
+ // Compositing onto 2x colors beyond our control
+ ScopedVclPtrInstance< VirtualDevice > aWhite;
+ ScopedVclPtrInstance< VirtualDevice > aBlack;
+ aWhite->SetOutputSizePixel(aSrc.GetSizePixel());
+ aWhite->SetBackground(Wallpaper(COL_WHITE));
+ aWhite->Erase();
+ aBlack->SetOutputSizePixel(aSrc.GetSizePixel());
+ aBlack->SetBackground(Wallpaper(COL_BLACK));
+ aBlack->Erase();
+ aWhite->DrawBitmapEx(Point(), aSrc);
+ aBlack->DrawBitmapEx(Point(), aSrc);
+
+ // Now recover that alpha...
+ Bitmap aWhiteBmp = aWhite->GetBitmap(Point(),aSrc.GetSizePixel());
+ Bitmap aBlackBmp = aBlack->GetBitmap(Point(),aSrc.GetSizePixel());
+ AlphaMask aMask(aSrc.GetSizePixel());
+ Bitmap aRecovered(aSrc.GetSizePixel(), 24);
+ {
+ AlphaScopedWriteAccess pMaskAcc(aMask);
+ BitmapScopedWriteAccess pRecAcc(aRecovered);
+ Bitmap::ScopedReadAccess pAccW(aWhiteBmp); // a * pix + (1-a)
+ Bitmap::ScopedReadAccess pAccB(aBlackBmp); // a * pix + 0
+ int nSizeX = aSrc.GetSizePixel().Width();
+ int nSizeY = aSrc.GetSizePixel().Height();
+ for (int y = 0; y < nSizeY; y++)
+ {
+ Scanline pScanlineMask = pMaskAcc->GetScanline( y );
+ Scanline pScanlineRec = pRecAcc->GetScanline( y );
+ Scanline pScanlineW = pAccW->GetScanline( y );
+ Scanline pScanlineB = pAccB->GetScanline( y );
+ for (int x = 0; x < nSizeX; x++)
+ {
+ BitmapColor aColW = pAccW->GetPixelFromData(pScanlineW,x);
+ BitmapColor aColB = pAccB->GetPixelFromData(pScanlineB,x);
+ long nAR = static_cast<long>(aColW.GetRed() - aColB.GetRed()); // (1-a)
+ long nAG = static_cast<long>(aColW.GetGreen() - aColB.GetGreen()); // (1-a)
+ long nAB = static_cast<long>(aColW.GetBlue() - aColB.GetBlue()); // (1-a)
+
+#define CLAMP(a,b,c) (((a)<=(b))?(b):(((a)>=(c))?(c):(a)))
+
+ // we get the most precision from the largest delta
+ long nInverseAlpha = std::max(nAR, std::max(nAG, nAB)); // (1-a)
+ nInverseAlpha = CLAMP(nInverseAlpha, 0, 255);
+ long nAlpha = 255 - nInverseAlpha;
+
+ pMaskAcc->SetPixelOnData(pScanlineMask,x,BitmapColor(static_cast<sal_Int8>(CLAMP(nInverseAlpha,0,255))));
+ // now recover the pixels
+ long nR = (aColW.GetRed() + aColB.GetRed() - nInverseAlpha) * 128;
+ long nG = (aColW.GetGreen() + aColB.GetGreen() - nInverseAlpha) * 128;
+ long nB = (aColW.GetBlue() + aColB.GetBlue() - nInverseAlpha) * 128;
+ if (nAlpha == 0)
+ { // doesn't matter what's behind transparency
+ nR = nG = nB = 0;
+ }
+ else
+ {
+ nR /= nAlpha; nG /= nAlpha; nB /= nAlpha;
+ }
+ pRecAcc->SetPixelOnData(pScanlineRec,x,BitmapColor(
+ static_cast<sal_uInt8>(CLAMP(nR,0,255)),
+ static_cast<sal_uInt8>(CLAMP(nG,0,255)),
+ static_cast<sal_uInt8>(CLAMP(nB,0,255))));
+#undef CLAMP
+ }
+ }
+ }
+ rDev.DrawBitmap(aPt, aWhiteBmp);
+ aPt.Move(aSrc.GetSizePixel().Width(), 0);
+ rDev.DrawBitmap(aPt, aBlackBmp);
+ aPt.Move(aSrc.GetSizePixel().Width(), 0);
+ rDev.DrawBitmap(aPt, aRecovered);
+ aPt.Move(aSrc.GetSizePixel().Width(), 0);
+ rDev.DrawBitmap(aPt, aMask.GetBitmap());
+ aPt.Move(aSrc.GetSizePixel().Width(), 0);
+
+ return BitmapEx(aRecovered, aMask);
+ }
+
+ virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r,
+ const RenderContext &rCtx) override
+ {
+ if (rCtx.meStyle == RENDER_EXPANDED)
+ {
+ LoadAllImages();
+
+ Point aLocation(0,maIcons[0].GetSizePixel().Height() + 8);
+ for (size_t i = 0; i < maIcons.size(); i++)
+ {
+ BitmapEx aSrc = maIcons[i];
+
+ // original above
+ Point aAbove(aLocation);
+ aAbove.Move(0,-aSrc.GetSizePixel().Height() - 4);
+ rDev.DrawBitmapEx(aAbove, aSrc);
+ aAbove.Move(aSrc.GetSizePixel().Width(),0);
+ aAbove.Move(aSrc.GetSizePixel().Width(),0);
+ rDev.DrawBitmap(aAbove, aSrc.GetBitmap());
+ aAbove.Move(aSrc.GetSizePixel().Width(),0);
+ rDev.DrawBitmap(aAbove, aSrc.GetMask());
+
+ // intermediates middle
+ BitmapEx aResult = AlphaRecovery(rDev, aLocation, aSrc);
+
+ // result below
+ Point aBelow(aLocation);
+ aBelow.Move(0,aResult.GetSizePixel().Height());
+ rDev.DrawBitmapEx(aBelow, aResult);
+
+ // mini convert test.
+ aBelow.Move(aResult.GetSizePixel().Width()+4,0);
+ rDev.DrawBitmapEx(aBelow, aResult);
+
+ Bitmap aGrey = aSrc.GetBitmap();
+ aGrey.Convert(BmpConversion::N8BitGreys);
+ rDev.DrawBitmap(aBelow, aGrey);
+
+ aBelow.Move(aGrey.GetSizePixel().Width(),0);
+ BitmapEx aGreyMask(aSrc.GetBitmap(),
+ AlphaMask(aSrc.GetMask()));
+ rDev.DrawBitmapEx(aBelow, aGreyMask);
+
+ aLocation.Move(aSrc.GetSizePixel().Width()*6,0);
+ if (aLocation.X() > r.Right())
+ aLocation = Point(0,aLocation.Y()+aSrc.GetSizePixel().Height()*3+4);
+ }
+
+ // now go crazy with random foo
+ doDrawIcons(rDev, r, true);
+ }
+ else
+ {
+ doDrawIcons(rDev, r, false);
+ }
+ }
+ };
+
+ struct FetchDrawBitmap : public RegionRenderer
+ {
+ RENDER_DETAILS(fetchdraw,KEY_F,50)
+ virtual void RenderRegion(OutputDevice &rDev, tools::Rectangle r,
+ const RenderContext &) override
+ {
+ Bitmap aBitmap(rDev.GetBitmap(Point(0,0),rDev.GetOutputSizePixel()));
+ aBitmap.Scale(r.GetSize(), BmpScaleFlag::BestQuality);
+ rDev.DrawBitmap(r.TopLeft(), aBitmap);
+ }
+ };
+
+ void drawThumbs(vcl::RenderContext& rDev, tools::Rectangle aRect, bool bVDev)
+ {
+ RenderContext aCtx;
+ aCtx.meStyle = RENDER_THUMB;
+ aCtx.mbVDev = bVDev;
+ aCtx.mpDemoRenderer = this;
+ aCtx.maSize = aRect.GetSize();
+ std::vector<tools::Rectangle> aRegions(partition(aRect, mnSegmentsX, mnSegmentsY));
+ DemoRenderer::clearRects(rDev, aRegions);
+ for (size_t i = 0; i < maRenderers.size(); i++)
+ {
+ RegionRenderer * r = maRenderers[i];
+
+ rDev.SetClipRegion( vcl::Region( aRegions[i] ) );
+
+ // profiling?
+ if (getIterCount() > 0)
+ {
+ if (!bVDev)
+ {
+ double nStartTime = getTimeNow();
+ for (int j = 0; j < r->getTestRepeatCount() * THUMB_REPEAT_FACTOR; j++)
+ r->RenderRegion(rDev, aRegions[i], aCtx);
+ addTime(i, (getTimeNow() - nStartTime) / THUMB_REPEAT_FACTOR);
+ } else
+ for (int j = 0; j < r->getTestRepeatCount(); j++)
+ r->RenderRegion(rDev, aRegions[i], aCtx);
+ }
+ else
+ r->RenderRegion(rDev, aRegions[i], aCtx);
+
+ rDev.SetClipRegion();
+ }
+ }
+
+ void drawToDevice(vcl::RenderContext& rDev, Size aSize, bool bVDev)
+ {
+ RenderContext aCtx;
+ aCtx.mbVDev = bVDev;
+ aCtx.mpDemoRenderer = this;
+ aCtx.maSize = aSize;
+ tools::Rectangle aWholeWin(Point(0,0), rDev.GetOutputSizePixel());
+
+ drawBackground(rDev, aWholeWin);
+
+ if (!bVDev /* want everything in the vdev */ &&
+ mnSelectedRenderer >= 0 &&
+ o3tl::make_unsigned(mnSelectedRenderer) < maRenderers.size())
+ {
+ aCtx.meStyle = RENDER_EXPANDED;
+ RegionRenderer * r = maRenderers[mnSelectedRenderer];
+ // profiling?
+ if (getIterCount() > 0)
+ {
+ double nStartTime = getTimeNow();
+ for (int i = 0; i < r->getTestRepeatCount(); i++)
+ r->RenderRegion(rDev, aWholeWin, aCtx);
+ addTime(mnSelectedRenderer, getTimeNow() - nStartTime);
+ } else
+ r->RenderRegion(rDev, aWholeWin, aCtx);
+ }
+ else
+ drawThumbs(rDev, aWholeWin, bVDev);
+ }
+ std::vector<VclPtr<vcl::Window> > maInvalidates;
+ void addInvalidate(vcl::Window *pWindow) { maInvalidates.emplace_back(pWindow); };
+ void removeInvalidate(vcl::Window *pWindow)
+ {
+ auto aIt = std::find(maInvalidates.begin(), maInvalidates.end(), pWindow);
+ if (aIt != maInvalidates.end())
+ maInvalidates.erase(aIt);
+ }
+ void Invalidate()
+ {
+ for (auto const& invalidate : maInvalidates)
+ invalidate->Invalidate();
+ }
+};
+
+}
+
+#if FIXME_BOUNCE_BUTTON
+IMPL_LINK_NOARG(DemoRenderer,BounceTimerCb,Timer*,void)
+{
+ mpButton->Check(mnBounceX>0);
+ mpButton->SetPressed(mnBounceY>0);
+
+ Point aCur = mpButtonWin->GetPosPixel();
+ static const int nMovePix = 10;
+ aCur.Move(mnBounceX * nMovePix, mnBounceX * nMovePix);
+ Size aWinSize = GetSizePixel();
+ if (aCur.X() <= 0 || aCur.X() >= aWinSize.Width())
+ mnBounceX *= -1;
+ if (aCur.Y() <= 0 || aCur.Y() >= aWinSize.Height())
+ mnBounceX *= -1;
+ mpButtonWin->SetPosPixel(aCur);
+
+ // All smoke and mirrors to test sub-region invalidation underneath
+ Rectangle aRect(aCur, mpButtonWin->GetSizePixel());
+ Invalidate(aRect);
+}
+#endif
+
+void DemoRenderer::KeyInput(const KeyEvent &rKEvt)
+{
+ sal_uInt16 nCode = rKEvt.GetKeyCode().GetCode();
+
+ // click to zoom out
+ if (mnSelectedRenderer >= 0)
+ {
+ if (nCode == KEY_ESCAPE || nCode == KEY_BACKSPACE)
+ {
+ mnSelectedRenderer = -1;
+ Invalidate();
+ return;
+ }
+ }
+ else
+ {
+ for (size_t i = 0; i < maRenderers.size(); i++)
+ {
+ if (nCode == maRenderers[i]->getAccelerator())
+ {
+ mnSelectedRenderer = i;
+ Invalidate();
+ return;
+ }
+ }
+ }
+}
+
+bool DemoRenderer::MouseButtonDown(const MouseEvent& rMEvt)
+{
+ // click to zoom out
+ if (mnSelectedRenderer >= 0)
+ {
+ mnSelectedRenderer = -1;
+ Invalidate();
+ return true;
+ }
+
+ // click on a region to zoom into it
+ std::vector<tools::Rectangle> aRegions(partition(GetSizePixel(), mnSegmentsX, mnSegmentsY));
+ for (size_t i = 0; i < aRegions.size(); i++)
+ {
+ if (aRegions[i].IsInside(rMEvt.GetPosPixel()))
+ {
+ mnSelectedRenderer = i;
+ Invalidate();
+ return true;
+ }
+ }
+
+#if FIXME_BOUNCE_BUTTON
+ // otherwise bounce floating windows
+ if (!mpButton)
+ {
+ mpButtonWin = VclPtr<FloatingWindow>::Create(this);
+ mpButton = VclPtr<PushButton>::Create(mpButtonWin);
+ mpButton->SetSymbol(SymbolType::HELP);
+ mpButton->SetText("PushButton demo");
+ mpButton->SetPosSizePixel(Point(0,0), mpButton->GetOptimalSize());
+ mpButton->Show();
+ mpButtonWin->SetPosSizePixel(Point(0,0), mpButton->GetOptimalSize());
+ mpButtonWin->Show();
+ mnBounceX = 1; mnBounceX = 1;
+ maBounce.SetInvokeHandler(LINK(this,DemoRenderer,BounceTimerCb));
+ maBounce.SetTimeout(55);
+ maBounce.Start();
+ }
+ else
+ {
+ maBounce.Stop();
+ delete mpButtonWin;
+ mpButtonWin = NULL;
+ mpButton = NULL;
+ }
+#endif
+ return false;
+}
+
+void DemoRenderer::InitRenderers()
+{
+ maRenderers.push_back(new DrawLines);
+ maRenderers.push_back(new DrawText);
+ maRenderers.push_back(new DrawPoly);
+ maRenderers.push_back(new DrawEllipse);
+ maRenderers.push_back(new DrawCheckered);
+ maRenderers.push_back(new DrawBitmapEx);
+ maRenderers.push_back(new DrawBitmap);
+ maRenderers.push_back(new DrawGradient);
+ maRenderers.push_back(new DrawPolyPolygons);
+ maRenderers.push_back(new DrawClipped);
+ maRenderers.push_back(new DrawToVirtualDevice);
+ maRenderers.push_back(new DrawXOR);
+ maRenderers.push_back(new DrawIcons());
+ maRenderers.push_back(new FetchDrawBitmap);
+}
+
+OUString DemoRenderer::getRendererList()
+{
+ OUStringBuffer aBuf;
+ for (size_t i = 0; i < maRenderers.size(); i++)
+ {
+ aBuf.append(maRenderers[i]->getName());
+ aBuf.append(' ');
+ }
+ return aBuf.makeStringAndClear();
+}
+
+double DemoRenderer::getAndResetBenchmark(const RenderStyle style)
+{
+ double geomean = 1.0;
+ fprintf(stderr, "Rendering: %s, Times (ms):\n", style == RENDER_THUMB ? "THUMB": "EXPANDED");
+ for (size_t i = 0; i < maRenderers.size(); i++)
+ {
+ double avgtime = maRenderers[i]->sumTime / maRenderers[i]->countTime;
+ geomean *= avgtime;
+ fprintf(stderr, "%s: %f (iteration: %d*%d*%d)\n",
+ OUStringToOString(maRenderers[i]->getName(),
+ RTL_TEXTENCODING_UTF8).getStr(), avgtime,
+ maRenderers[i]->countTime, maRenderers[i]->getTestRepeatCount(),
+ (style == RENDER_THUMB) ? THUMB_REPEAT_FACTOR : 1);
+ maRenderers[i]->sumTime = 0;
+ maRenderers[i]->countTime = 0;
+ }
+ geomean = pow(geomean, 1.0/maRenderers.size());
+ fprintf(stderr, "GEOMEAN_%s: %f\n", style == RENDER_THUMB ? "THUMB": "EXPANDED", geomean);
+ return geomean;
+}
+
+void DemoRenderer::setIterCount(sal_Int32 i)
+{
+ iterCount = i;
+}
+
+sal_Int32 DemoRenderer::getIterCount() const
+{
+ return iterCount;
+}
+
+void DemoRenderer::addTime(int i, double t)
+{
+ maRenderers[i]->sumTime += t / maRenderers[i]->getTestRepeatCount();
+ maRenderers[i]->countTime++;
+}
+
+void DemoRenderer::selectRenderer(const OUString &rName )
+{
+ for (size_t i = 0; i < maRenderers.size(); i++)
+ {
+ if (maRenderers[i]->getName() == rName)
+ {
+ mnSelectedRenderer = i;
+ Invalidate();
+ return;
+ }
+ }
+}
+
+int DemoRenderer::selectNextRenderer()
+{
+ mnSelectedRenderer++;
+ if (mnSelectedRenderer == static_cast<signed>(maRenderers.size()))
+ mnSelectedRenderer = -1;
+ Invalidate();
+ return mnSelectedRenderer;
+}
+
+namespace {
+
+class DemoWin : public WorkWindow
+{
+ DemoRenderer &mrRenderer;
+ bool underTesting;
+ bool testThreads;
+
+ class RenderThread final : public salhelper::Thread {
+ DemoWin &mrWin;
+ sal_uInt32 const mnDelaySecs = 0;
+ public:
+ RenderThread(DemoWin &rWin, sal_uInt32 nDelaySecs)
+ : Thread("vcldemo render thread")
+ , mrWin(rWin)
+ , mnDelaySecs(nDelaySecs)
+ {
+ launch();
+ }
+ virtual ~RenderThread() override
+ {
+ join();
+ }
+ virtual void execute() override
+ {
+ wait(std::chrono::seconds(mnDelaySecs));
+
+ SolarMutexGuard aGuard;
+ fprintf (stderr, "render from a different thread\n");
+ mrWin.Invalidate();
+ }
+ };
+ rtl::Reference<RenderThread> mxThread;
+
+public:
+ DemoWin(DemoRenderer &rRenderer, bool bThreads) :
+ WorkWindow(nullptr, WB_APP | WB_STDWORK),
+ mrRenderer(rRenderer),
+ testThreads(bThreads)
+ {
+ mrRenderer.addInvalidate(this);
+ underTesting = false;
+ }
+ virtual ~DemoWin() override
+ {
+ disposeOnce();
+ }
+ virtual void dispose() override
+ {
+ mxThread.clear();
+ mrRenderer.removeInvalidate(this);
+ WorkWindow::dispose();
+ }
+ virtual void MouseButtonDown(const MouseEvent& rMEvt) override
+ {
+ mrRenderer.SetSizePixel(GetSizePixel());
+ if (!mrRenderer.MouseButtonDown(rMEvt))
+ {
+ if (testThreads)
+ { // render this window asynchronously in a new thread
+ sal_uInt32 nDelaySecs = 0;
+ if (rMEvt.GetButtons() & MOUSE_RIGHT)
+ nDelaySecs = 5;
+ mxThread = new RenderThread(*this, nDelaySecs);
+ }
+ else
+ { // spawn another window
+ VclPtrInstance<DemoWin> pNewWin(mrRenderer, testThreads);
+ pNewWin->SetText("Another interactive VCL demo window");
+ pNewWin->Show();
+ }
+ }
+ }
+ virtual void KeyInput(const KeyEvent& rKEvt) override
+ {
+ mrRenderer.SetSizePixel(GetSizePixel());
+ mrRenderer.KeyInput(rKEvt);
+ }
+ virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override
+ {
+ mrRenderer.SetSizePixel(GetSizePixel());
+ fprintf(stderr, "DemoWin::Paint(%ld,%ld,%ld,%ld)\n", rRect.getX(), rRect.getY(), rRect.getWidth(), rRect.getHeight());
+ if (mrRenderer.getIterCount() == 0)
+ mrRenderer.drawToDevice(rRenderContext, GetSizePixel(), false);
+ else
+ TestAndQuit(rRenderContext);
+ }
+
+ void TestAndQuit(vcl::RenderContext& rRenderContext)
+ {
+ if (underTesting)
+ return;
+ underTesting = true;
+ for (sal_Int32 i = 0; i < mrRenderer.getIterCount(); i++)
+ {
+ while (mrRenderer.selectNextRenderer() > -1)
+ {
+ mrRenderer.drawToDevice(rRenderContext, GetSizePixel(), false);
+ }
+ }
+
+ double expandedGEOMEAN = mrRenderer.getAndResetBenchmark(RENDER_EXPANDED);
+
+ for (sal_Int32 i = 0; i < mrRenderer.getIterCount(); i++)
+ mrRenderer.drawToDevice(rRenderContext, GetSizePixel(), false);
+
+ double thumbGEOMEAN = mrRenderer.getAndResetBenchmark(RENDER_THUMB);
+
+ fprintf(stderr, "GEOMEAN_TOTAL: %f\n", pow(thumbGEOMEAN * expandedGEOMEAN, 0.5));
+ Application::Quit();
+ }
+};
+
+struct PointerData {
+ PointerStyle eStyle;
+ const char * name;
+};
+
+}
+
+static const PointerData gvPointerData [] = {
+ { PointerStyle::Null, "Null" },
+ { PointerStyle::Magnify, "Magnify" },
+ { PointerStyle::Fill, "Fill" },
+ { PointerStyle::MoveData, "MoveData" },
+ { PointerStyle::CopyData, "CopyData" },
+ { PointerStyle::MoveFile, "MoveFile" },
+ { PointerStyle::CopyFile, "CopyFile" },
+ { PointerStyle::MoveFiles, "MoveFiles" },
+ { PointerStyle::CopyFiles, "CopyFiles" },
+ { PointerStyle::NotAllowed, "NotAllowed" },
+ { PointerStyle::Rotate, "Rotate" },
+ { PointerStyle::HShear, "HShear" },
+ { PointerStyle::VShear, "VShear" },
+ { PointerStyle::DrawLine, "DrawLine" },
+ { PointerStyle::DrawRect, "DrawRect" },
+ { PointerStyle::DrawPolygon, "DrawPolygon" },
+ { PointerStyle::DrawBezier, "DrawBezier" },
+ { PointerStyle::DrawArc, "DrawArc" },
+ { PointerStyle::DrawPie, "DrawPie" },
+ { PointerStyle::DrawCircleCut, "DrawCircleCut" },
+ { PointerStyle::DrawEllipse, "DrawEllipse" },
+ { PointerStyle::DrawConnect, "DrawConnect" },
+ { PointerStyle::DrawText, "DrawText" },
+ { PointerStyle::Mirror, "Mirror" },
+ { PointerStyle::Crook, "Crook" },
+ { PointerStyle::Crop, "Crop" },
+ { PointerStyle::MovePoint, "MovePoint" },
+ { PointerStyle::MoveBezierWeight, "MoveBezierWeight" },
+ { PointerStyle::DrawFreehand, "DrawFreehand" },
+ { PointerStyle::DrawCaption, "DrawCaption" },
+ { PointerStyle::LinkData, "LinkData" },
+ { PointerStyle::MoveDataLink, "MoveDataLink" },
+ { PointerStyle::CopyDataLink, "CopyDataLink" },
+ { PointerStyle::LinkFile, "LinkFile" },
+ { PointerStyle::MoveFileLink, "MoveFileLink" },
+ { PointerStyle::CopyFileLink, "CopyFileLink" },
+ { PointerStyle::Chart, "Chart" },
+ { PointerStyle::Detective, "Detective" },
+ { PointerStyle::PivotCol, "PivotCol" },
+ { PointerStyle::PivotRow, "PivotRow" },
+ { PointerStyle::PivotField, "PivotField" },
+ { PointerStyle::PivotDelete, "PivotDelete" },
+ { PointerStyle::Chain, "Chain" },
+ { PointerStyle::ChainNotAllowed, "ChainNotAllowed" },
+ { PointerStyle::AutoScrollN, "AutoScrollN" },
+ { PointerStyle::AutoScrollS, "AutoScrollS" },
+ { PointerStyle::AutoScrollW, "AutoScrollW" },
+ { PointerStyle::AutoScrollE, "AutoScrollE" },
+ { PointerStyle::AutoScrollNW, "AutoScrollNW" },
+ { PointerStyle::AutoScrollNE, "AutoScrollNE" },
+ { PointerStyle::AutoScrollSW, "AutoScrollSW" },
+ { PointerStyle::AutoScrollSE, "AutoScrollSE" },
+ { PointerStyle::AutoScrollNS, "AutoScrollNS" },
+ { PointerStyle::AutoScrollWE, "AutoScrollWE" },
+ { PointerStyle::AutoScrollNSWE, "AutoScrollNSWE" },
+ { PointerStyle::TextVertical, "TextVertical" },
+ { PointerStyle::TabSelectS, "TabSelectS" },
+ { PointerStyle::TabSelectE, "TabSelectE" },
+ { PointerStyle::TabSelectSE, "TabSelectSE" },
+ { PointerStyle::TabSelectW, "TabSelectW" },
+ { PointerStyle::TabSelectSW, "TabSelectSW" },
+ { PointerStyle::HideWhitespace, "HideWhitespace" },
+ { PointerStyle::ShowWhitespace, "ShowWhitespace" },
+};
+
+namespace {
+
+class DemoWidgets : public WorkWindow
+{
+ VclPtr<MenuBar> mpBar;
+ VclPtr<VclBox> mpBox;
+ VclPtr<ToolBox> mpToolbox;
+ VclPtr<PushButton> mpButton;
+ VclPtr<VclHBox> mpHBox;
+ VclPtr<CheckBox> mpGLCheck;
+ VclPtr<ComboBox> mpGLCombo;
+ VclPtr<PushButton> mpGLButton;
+ std::vector<VclPtr<VclHBox>> mvCursorBoxes;
+ std::vector<VclPtr<PushButton>> mvCursorButtons;
+
+ DECL_LINK(GLTestClick, Button*, void);
+ DECL_LINK(CursorButtonClick, Button*, void);
+
+public:
+ DemoWidgets() :
+ WorkWindow(nullptr, WB_APP | WB_STDWORK),
+ mpBox(VclPtrInstance<VclVBox>(this, false, 3)),
+ mpToolbox(VclPtrInstance<ToolBox>(mpBox.get())),
+ mpButton(VclPtrInstance<PushButton>(mpBox.get())),
+ mpHBox(VclPtrInstance<VclHBox>(mpBox.get(), true, 3)),
+ mpGLCheck(VclPtrInstance<CheckBox>(mpHBox.get())),
+ mpGLCombo(VclPtrInstance<ComboBox>(mpHBox.get())),
+ mpGLButton(VclPtrInstance<PushButton>(mpHBox.get()))
+ {
+ SetText("VCL widget demo");
+
+ Wallpaper aWallpaper(BitmapEx("sfx2/res/startcenter-logo.png"));
+ aWallpaper.SetStyle(WallpaperStyle::BottomRight);
+ aWallpaper.SetColor(COL_RED);
+
+ mpBox->SetBackground(aWallpaper);
+ mpBox->Show();
+
+ Help::EnableBalloonHelp();
+ mpToolbox->SetHelpText("Help text");
+ mpToolbox->InsertItem(0, "Toolbar item");
+ mpToolbox->SetQuickHelpText(0, "This is a tooltip popup");
+ mpToolbox->InsertSeparator();
+ mpToolbox->Show();
+
+ mpButton->SetText("Click me; go on");
+ mpButton->Show();
+
+ mpGLCheck->SetText("Test in OGL zone");
+ mpGLCheck->Show();
+ mpGLCombo->InsertEntry("sleep 1 second");
+ mpGLCombo->InsertEntry("sleep 3 seconds");
+ mpGLCombo->InsertEntry("sleep 7 seconds");
+ mpGLCombo->SelectEntryPos(2);
+ mpGLCombo->Show();
+ mpGLButton->SetText("Execute test");
+ mpGLButton->SetClickHdl(LINK(this,DemoWidgets,GLTestClick));
+ mpGLButton->Show();
+ mpHBox->Show();
+
+ int i = 0;
+ VclHBox* pCurrentCursorHBox = nullptr;
+ constexpr int numButtonsPerRow = 9;
+ for (auto & rData : gvPointerData)
+ {
+ if (i % numButtonsPerRow == 0)
+ {
+ mvCursorBoxes.push_back(VclPtrInstance<VclHBox>(mpBox.get(), true, numButtonsPerRow));
+ pCurrentCursorHBox = mvCursorBoxes.back().get();
+ pCurrentCursorHBox->Show();
+ }
+ mvCursorButtons.emplace_back(VclPtrInstance<PushButton>(pCurrentCursorHBox));
+ PushButton& rButton = *mvCursorButtons.back();
+ rButton.SetText(OUString::createFromAscii(rData.name));
+ rButton.SetClickHdl(LINK(this,DemoWidgets,CursorButtonClick));
+ rButton.Show();
+ ++i;
+ }
+
+ mpBar = VclPtr<MenuBar>::Create();
+ mpBar->InsertItem(0,"File");
+ VclPtrInstance<PopupMenu> pPopup;
+ pPopup->InsertItem(0,"Item");
+ mpBar->SetPopupMenu(0, pPopup);
+ SetMenuBar(mpBar);
+
+ Show();
+ }
+ virtual ~DemoWidgets() override { disposeOnce(); }
+ virtual void dispose() override
+ {
+ mpGLButton.disposeAndClear();
+ mpGLCombo.disposeAndClear();
+ mpGLCheck.disposeAndClear();
+ mpHBox.disposeAndClear();
+ for (auto & p : mvCursorButtons)
+ p.disposeAndClear();
+ mvCursorButtons.clear();
+ for (auto & p : mvCursorBoxes)
+ p.disposeAndClear();
+ mvCursorBoxes.clear();
+ mpToolbox.disposeAndClear();
+ mpButton.disposeAndClear();
+ mpBox.disposeAndClear();
+ mpBar.disposeAndClear();
+ WorkWindow::dispose();
+ }
+ virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&) override
+ {
+ tools::Rectangle aWholeSize(Point(0, 0),GetOutputSizePixel());
+ vcl::Region aClip(aWholeSize);
+ tools::Rectangle aExclude(tools::Rectangle(Point(50,50),Size(100,100)));
+ aClip.Exclude(aExclude);
+
+ Wallpaper aWallpaper(COL_GREEN);
+
+ rRenderContext.Push(PushFlags::CLIPREGION);
+ rRenderContext.IntersectClipRegion(aClip);
+ rRenderContext.DrawWallpaper(aWholeSize, aWallpaper);
+ rRenderContext.Pop();
+
+ ScopedVclPtrInstance< VirtualDevice > pDev(*this);
+ pDev->EnableRTL(IsRTLEnabled());
+ pDev->SetOutputSizePixel(aExclude.GetSize());
+
+ tools::Rectangle aSubRect(aWholeSize);
+ aSubRect.Move(-aExclude.Left(), -aExclude.Top());
+ pDev->DrawWallpaper(aSubRect, aWallpaper );
+
+ rRenderContext.DrawOutDev(aExclude.TopLeft(), aExclude.GetSize(),
+ Point( 0, 0 ), aExclude.GetSize(), *pDev );
+ }
+};
+
+}
+
+IMPL_LINK_NOARG(DemoWidgets, GLTestClick, Button*, void)
+{
+ sal_Int32 nSelected = mpGLCombo->GetSelectedEntryPos();
+ sal_uInt32 nDelaySeconds = 0;
+
+ switch (nSelected)
+ {
+ case 0:
+ nDelaySeconds = 1;
+ break;
+ case 1:
+ nDelaySeconds = 3;
+ break;
+ case 2:
+ nDelaySeconds = 7;
+ break;
+ default:
+ break;
+ }
+
+ // Only create OpenGLZone RAII object if asked for:
+ std::unique_ptr<OpenGLZone> zone;
+ if (mpGLCheck->IsChecked()) {
+ zone.reset(new OpenGLZone);
+ }
+
+ osl::Thread::wait(std::chrono::seconds(nDelaySeconds));
+}
+
+IMPL_LINK(DemoWidgets, CursorButtonClick, Button*, pButton, void)
+{
+ for (size_t i=0; i<SAL_N_ELEMENTS(gvPointerData); ++i)
+ {
+ if (mvCursorButtons[i].get() == pButton)
+ {
+ mpBox->SetPointer( gvPointerData[i].eStyle );
+ return;
+ }
+ }
+ assert(false);
+}
+
+namespace {
+
+class DemoPopup : public FloatingWindow
+{
+ public:
+ DemoPopup() : FloatingWindow( nullptr, WB_SYSTEMWINDOW|WB_TOOLTIPWIN)
+ {
+ SetType( WindowType::HELPTEXTWINDOW );
+
+ SetOutputSizePixel( Size( 300, 30 ) );
+ SetBackground(Wallpaper(COL_YELLOW));
+
+ Show( true, ShowFlags::NoActivate );
+ PaintImmediately();
+ }
+
+ virtual void Paint(vcl::RenderContext& /*rRenderContext*/, const tools::Rectangle&) override
+ {
+ // Interestingly in GL mode on Windows, this doesn't render.
+
+ Size aSize = GetOutputSizePixel();
+ tools::Rectangle aTextRect(Point(6, 6), aSize);
+
+ SetTextColor(COL_BLACK);
+ SetTextAlign(ALIGN_TOP);
+ DrawText(aTextRect, "This is a standalone help text test",
+ DrawTextFlags::MultiLine|DrawTextFlags::WordBreak|
+ DrawTextFlags::Left|DrawTextFlags::Top);
+
+ SetLineColor(COL_BLACK);
+ SetFillColor();
+ DrawRect( tools::Rectangle( Point(), aSize ) );
+ aSize.AdjustWidth( -2 );
+ aSize.AdjustHeight( -2 );
+ Color aColor( GetLineColor() );
+ SetLineColor( COL_GRAY );
+ DrawRect( tools::Rectangle( Point( 1, 1 ), aSize ) );
+ SetLineColor( aColor );
+ }
+
+ virtual void MouseButtonDown( const MouseEvent & ) override
+ {
+ Application::Quit();
+ }
+};
+
+}
+
+class OpenGLTests
+{
+ VclPtr<WorkWindow> mxWinA;
+ VclPtr<WorkWindow> mxWinB;
+ rtl::Reference<OpenGLContext> mpA;
+ rtl::Reference<OpenGLContext> mpB;
+
+ static OpenGLSalGraphicsImpl *getImpl(const VclPtr<OutputDevice> &xOut)
+ {
+ SalGraphics *pGraphics = xOut->GetGraphics();
+ return dynamic_cast<OpenGLSalGraphicsImpl *>(pGraphics->GetImpl());
+ }
+public:
+ OpenGLTests() :
+ mxWinA(VclPtr<WorkWindow>::Create(nullptr, WB_APP | WB_STDWORK)),
+ mxWinB(VclPtr<WorkWindow>::Create(nullptr, WB_APP | WB_STDWORK))
+ {
+ OpenGLSalGraphicsImpl *pImplA;
+ OpenGLSalGraphicsImpl *pImplB;
+ if (!OpenGLHelper::isVCLOpenGLEnabled())
+ {
+ pImplA = pImplB = nullptr;
+ fprintf (stderr, "OpenGL is not enabled: try SAL_FORCEGL=1\n");
+ return;
+ }
+
+ pImplA = getImpl(mxWinA);
+ pImplB = getImpl(mxWinB);
+ assert (pImplA && pImplB);
+ mpA = pImplA->GetOpenGLContext();
+ mpB = pImplB->GetOpenGLContext();
+
+ assert (mpA.is() && mpB.is());
+ assert (mpA != mpB);
+ }
+ ~OpenGLTests()
+ {
+ mxWinB.disposeAndClear();
+ mxWinA.disposeAndClear();
+ }
+
+ void testCurrentFramebuffer()
+ {
+ fprintf(stderr,"test OpenGLContext's framebuffer association.\n");
+ mpA->makeCurrent();
+ OpenGLFramebuffer *pBuffer;
+ {
+ OpenGLTexture aTexture(256,128);
+ pBuffer = mpA->AcquireFramebuffer(aTexture);
+ }
+ assert (pBuffer->IsFree()); (void)pBuffer;
+ mpB->makeCurrent();
+ assert (mpA->mpCurrentFramebuffer == nullptr);
+ }
+
+ void testVirtualDevice()
+ {
+ fprintf(stderr, "test sharing OpenGLContexts with virtual-devices reference counting\n");
+ VclPtrInstance<WorkWindow> xTempWin(nullptr, WB_STDWORK);
+ xTempWin->Show();
+ // forcibly make this context current by rendering
+ xTempWin->DrawPixel(Point(0, 0), COL_RED);
+
+ // get some other guys to leach off this context
+ VclPtrInstance<VirtualDevice> xVDev;
+ OpenGLSalGraphicsImpl* pImpl = getImpl(xVDev);
+ assert(pImpl);
+ rtl::Reference<OpenGLContext> pContext = pImpl->GetOpenGLContext();
+ VclPtrInstance<VirtualDevice> xVDev2;
+ OpenGLSalGraphicsImpl* pImpl2 = getImpl(xVDev2);
+ assert(pImpl2);
+ rtl::Reference<OpenGLContext> pContext2 = pImpl2->GetOpenGLContext();
+
+ // sharing the same off-screen context.
+ assert(pContext == pContext2);
+ assert(pContext == getImpl(xTempWin)->GetOpenGLContext());
+ assert(pContext != mpA && pContext != mpB);
+ (void)pContext; (void)pContext2;
+
+ // Kill the parent we free-ride on ...
+ xTempWin.disposeAndClear();
+
+ // This appears to continue working; fun.
+ Point aPt(0, 0);
+ xVDev->DrawPixel(aPt, COL_GREEN);
+ assert(xVDev->GetPixel(aPt) == COL_GREEN);
+ xVDev.disposeAndClear();
+
+ // Switch context to see if we can switch back.
+ mxWinA->DrawPixel(aPt, COL_WHITE);
+
+ // Now try switching back to this guy ...
+ xVDev2->DrawPixel(aPt, COL_BLUE);
+ assert(xVDev2->GetPixel(aPt) == COL_BLUE);
+ xVDev2.disposeAndClear();
+ }
+
+ int execute()
+ {
+ if (!OpenGLHelper::isVCLOpenGLEnabled())
+ return 1;
+
+ testCurrentFramebuffer();
+ testVirtualDevice();
+
+ return 0;
+ }
+};
+
+namespace {
+ void renderFonts()
+ {
+ ScopedVclPtrInstance<VirtualDevice> xDevice;
+ Size aSize(1024, 1024);
+ xDevice->SetOutputSizePixel(aSize);
+
+#if 0
+ for (auto & aFontName : aFontNames)
+ {
+ vcl::Font aFont(aFontName, Size(0,96));
+
+ aFont.Set(COL_BLACK);
+ xDevice->SetFont(aFont);
+ xDevice->Erase();
+
+ FontMetric aMetric = xDevice->GetFontMetric(aFont);
+
+ FontCharMapRef xMap;
+ if (xDevice->GetFontCharMap(xMap))
+ {
+ ... iterate through glyphs ...
+ }
+
+
+ bool GetGlyphBoundRects( const Point& rOrigin, const OUString& rStr, int nIndex,
+ int nLen, int nBase, MetricVector& rVector );
+
+include/vcl/outdev.hxx:typedef std::vector< Rectangle > MetricVector;
+include/vcl/outdev.hxx: MetricVector* pVector = nullptr, OUString* pDisplayText = nullptr );
+include/vcl/outdev.hxx: MetricVector* pVector = nullptr, OUString* pDisplayText = nullptr,
+include/vcl/outdev.hxx: MetricVector* pVector, OUString* pDisplayText, vcl::ITextLayout& _rLayout );
+include/vcl/outdev.hxx: DrawTextFlags nStyle = DrawTextFlags::Mnemonic, MetricVector* pVector = nullp
+
+ bool GetTextBoundRect( Rectangle& rRect,
+ const OUString& rStr, sal_Int32 nBase = 0, sal_Int32 nIndex = 0, sal_Int32 nLen = -1,
+ sal_uLong nLayoutWidth = 0, const long* pDXArray = nullptr ) const;
+
+
+ void DrawText( const Point& rStartPt, const OUString& rStr,
+ sal_Int32 nIndex = 0, sal_Int32 nLen = -1,
+ MetricVector* pVector = nullptr, OUString* pDisplayText = nullptr );
+
+ void DrawText( const Rectangle& rRect,
+ const OUString& rStr, DrawTextFlags nStyle = DrawTextFlags::NONE,
+ MetricVector* pVector = nullptr, OUString* pDisplayText = nullptr,
+ vcl::ITextLayout* _pTextLayout = nullptr );
+
+ Rectangle GetTextRect( const Rectangle& rRect,
+ const OUString& rStr, DrawTextFlags nStyle = DrawTextFlags::WordBreak,
+ TextRectInfo* pInfo = nullptr,
+ const vcl::ITextLayout* _pTextLayout = nullptr ) const;
+
+ }
+#endif
+
+ }
+};
+
+namespace {
+
+class DemoApp : public Application
+{
+ static int showHelp(DemoRenderer &rRenderer)
+ {
+ fprintf(stderr,"vcldemo - a VCL test app\n");
+ fprintf(stderr," --help - print this text\n");
+ fprintf(stderr," --show <renderer> - start with a given renderer, options are:\n");
+ OUString aRenderers(rRenderer.getRendererList());
+ fprintf(stderr," %s\n",
+ OUStringToOString(aRenderers, RTL_TEXTENCODING_UTF8).getStr());
+ fprintf(stderr," --test <iterCount> - create benchmark data\n");
+ fprintf(stderr," --widgets - launch the widget test.\n");
+ fprintf(stderr," --popup - launch the popup test.\n");
+ fprintf(stderr," --threads - render from multiple threads.\n");
+ fprintf(stderr," --gltest - run openGL regression tests.\n");
+ fprintf(stderr," --font <fontname> - run the font render test.\n");
+ fprintf(stderr, "\n");
+ return 0;
+ }
+
+public:
+ DemoApp() {}
+
+ virtual int Main() override
+ {
+ try
+ {
+ bool bWidgets = false, bThreads = false;
+ bool bPopup = false, bGLTest = false;
+ DemoRenderer aRenderer;
+ std::vector<OUString> aFontNames;
+
+ for (sal_uInt16 i = 0; i < GetCommandLineParamCount(); ++i)
+ {
+ bool bLast = i == GetCommandLineParamCount() - 1;
+ OUString aArg = GetCommandLineParam(i);
+ if (aArg == "--help" || aArg == "-h")
+ return showHelp(aRenderer);
+ if (aArg == "--show")
+ {
+ if (bLast)
+ return showHelp(aRenderer);
+ else
+ aRenderer.selectRenderer(GetCommandLineParam(++i));
+ }
+ else if (aArg == "--test")
+ {
+ if (bLast)
+ return showHelp(aRenderer);
+ else
+ aRenderer.setIterCount(GetCommandLineParam(++i).toInt32());
+ }
+ else if (aArg == "--widgets")
+ bWidgets = true;
+ else if (aArg == "--popup")
+ bPopup = true;
+ else if (aArg == "--gltest")
+ bGLTest = true;
+ else if (aArg == "--threads")
+ bThreads = true;
+ else if (aArg == "--font" && !bLast)
+ aFontNames.push_back(GetCommandLineParam(++i));
+ else if (aArg.startsWith("--"))
+ {
+ fprintf(stderr,"Unknown argument '%s'\n",
+ OUStringToOString(aArg, RTL_TEXTENCODING_UTF8).getStr());
+ return showHelp(aRenderer);
+ }
+ }
+
+ ScopedVclPtrInstance<DemoWin> aMainWin(aRenderer, bThreads);
+ VclPtr<DemoWidgets> xWidgets;
+ VclPtr<DemoPopup> xPopup;
+
+ aMainWin->SetText("Interactive VCL demo #1");
+#if HAVE_FEATURE_OPENGL
+ if (bGLTest)
+ {
+ OpenGLTests aTests;
+ return aTests.execute();
+ }
+ else
+#endif
+ if (bWidgets)
+ xWidgets = VclPtr< DemoWidgets >::Create ();
+ else if (bPopup)
+ xPopup = VclPtrInstance< DemoPopup> ();
+ else if (!aFontNames.empty())
+ renderFonts();
+ else
+ aMainWin->Show();
+
+ Application::Execute();
+
+ xWidgets.disposeAndClear();
+ xPopup.disposeAndClear();
+ }
+ catch (const css::uno::Exception&)
+ {
+ TOOLS_WARN_EXCEPTION("vcl.app", "Fatal");
+ return 1;
+ }
+ catch (const std::exception& e)
+ {
+ SAL_WARN("vcl.app", "Fatal: " << e.what());
+ return 1;
+ }
+ return 0;
+ }
+
+protected:
+ void Init() override
+ {
+ try
+ {
+ uno::Reference<uno::XComponentContext> xComponentContext
+ = ::cppu::defaultBootstrap_InitialComponentContext();
+ uno::Reference<lang::XMultiServiceFactory> xMSF;
+ xMSF.set(xComponentContext->getServiceManager(), uno::UNO_QUERY);
+ if(!xMSF.is())
+ Application::Abort("Bootstrap failure - no service manager");
+
+ ::comphelper::setProcessServiceFactory(xMSF);
+ }
+ catch (const uno::Exception &e)
+ {
+ Application::Abort("Bootstrap exception " + e.Message);
+ }
+ }
+ void DeInit() override
+ {
+ uno::Reference< lang::XComponent >(
+ comphelper::getProcessComponentContext(),
+ uno::UNO_QUERY_THROW)-> dispose();
+ ::comphelper::setProcessServiceFactory(nullptr);
+ }
+};
+
+}
+
+void vclmain::createApplication()
+{
+#ifdef _WIN32
+ _putenv_s("LIBO_VCL_DEMO", "1");
+#else
+ setenv("LIBO_VCL_DEMO", "1", 0);
+#endif
+ static DemoApp aApp;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/wksfuzzer.cxx b/vcl/workben/wksfuzzer.cxx
new file mode 100644
index 000000000..3edacb484
--- /dev/null
+++ b/vcl/workben/wksfuzzer.cxx
@@ -0,0 +1,53 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include <com/sun/star/ucb/XContentProvider.hpp>
+#include <com/sun/star/ucb/XUniversalContentBroker.hpp>
+#include "commonfuzzer.hxx"
+
+extern "C" void* ScCreateDialogFactory() { return nullptr; }
+
+extern "C" bool TestImportWKS(SvStream& rStream);
+
+extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv)
+{
+ if (__lsan_disable)
+ __lsan_disable();
+
+ CommonInitialize(argc, argv);
+
+ // initialise unconfigured UCB:
+ css::uno::Reference<css::ucb::XUniversalContentBroker> xUcb(
+ comphelper::getProcessServiceFactory()->createInstance(
+ "com.sun.star.ucb.UniversalContentBroker"),
+ css::uno::UNO_QUERY_THROW);
+ css::uno::Sequence<css::uno::Any> aArgs(1);
+ aArgs[0] <<= OUString("NoConfig");
+ css::uno::Reference<css::ucb::XContentProvider> xFileProvider(
+ comphelper::getProcessServiceFactory()->createInstanceWithArguments(
+ "com.sun.star.ucb.FileContentProvider", aArgs),
+ css::uno::UNO_QUERY_THROW);
+ xUcb->registerContentProvider(xFileProvider, "file", true);
+
+ if (__lsan_enable)
+ __lsan_enable();
+
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportWKS(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/wksfuzzer.options b/vcl/workben/wksfuzzer.options
new file mode 100644
index 000000000..678d526b1
--- /dev/null
+++ b/vcl/workben/wksfuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 65536
diff --git a/vcl/workben/wmffuzzer.cxx b/vcl/workben/wmffuzzer.cxx
new file mode 100644
index 000000000..7ce9ff90d
--- /dev/null
+++ b/vcl/workben/wmffuzzer.cxx
@@ -0,0 +1,68 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/gdimtf.hxx>
+#include <vcl/wmf.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+extern "C" {
+void * emfio_component_getFactory( const char* , void* , void* );
+void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * );
+}
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { "libemfiolo.a", emfio_component_getFactory },
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation },
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ GDIMetaFile aGDIMetaFile;
+ (void)ReadWindowMetafile(aStream, aGDIMetaFile);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/wmffuzzer.options b/vcl/workben/wmffuzzer.options
new file mode 100644
index 000000000..678d526b1
--- /dev/null
+++ b/vcl/workben/wmffuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 65536
diff --git a/vcl/workben/ww2fuzzer.cxx b/vcl/workben/ww2fuzzer.cxx
new file mode 100644
index 000000000..24038ae16
--- /dev/null
+++ b/vcl/workben/ww2fuzzer.cxx
@@ -0,0 +1,104 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+extern "C" {
+void * unoxml_component_getFactory( const char* , void* , void* );
+void * i18npool_component_getFactory( const char* , void* , void* );
+void * ucb_component_getFactory( const char* , void* , void* );
+void * emfio_component_getFactory( const char* , void* , void* );
+
+void * com_sun_star_comp_framework_Desktop_get_implementation( void *, void * );
+void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * );
+void * SfxDocumentMetaData_get_implementation( void *, void * );
+void * com_sun_star_i18n_CharacterClassification_Unicode_get_implementation( void *, void * );
+void * com_sun_star_i18n_CharacterClassification_get_implementation( void *, void * );
+void * com_sun_star_i18n_NativeNumberSupplier_get_implementation( void *, void * );
+void * com_sun_star_i18n_NumberFormatCodeMapper_get_implementation( void *, void * );
+void * com_sun_star_comp_graphic_GraphicProvider_get_implementation( void *, void * );
+void * IndexedPropertyValuesContainer_get_implementation( void *, void * );
+void * com_sun_star_comp_uui_UUIInteractionHandler_get_implementation( void *, void * );
+void * com_sun_star_i18n_Transliteration_get_implementation( void *, void * );
+void * com_sun_star_text_DefaultNumberingProvider_get_implementation( void *, void * );
+void * com_sun_star_comp_uri_UriReferenceFactory_get_implementation( void *, void * );
+}
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { "libunoxmllo.a", unoxml_component_getFactory },
+ { "libi18npoollo.a", i18npool_component_getFactory },
+ { "libemfiolo.a", emfio_component_getFactory },
+ { "libucb1.a", ucb_component_getFactory },
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { "com_sun_star_comp_framework_Desktop_get_implementation", com_sun_star_comp_framework_Desktop_get_implementation },
+ { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation },
+ { "SfxDocumentMetaData_get_implementation", SfxDocumentMetaData_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation", com_sun_star_i18n_CharacterClassification_Unicode_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_get_implementation", com_sun_star_i18n_CharacterClassification_get_implementation },
+ { "com_sun_star_i18n_NativeNumberSupplier_get_implementation", com_sun_star_i18n_NativeNumberSupplier_get_implementation },
+ { "com_sun_star_i18n_NumberFormatCodeMapper_get_implementation", com_sun_star_i18n_NumberFormatCodeMapper_get_implementation },
+ { "com_sun_star_comp_graphic_GraphicProvider_get_implementation", com_sun_star_comp_graphic_GraphicProvider_get_implementation },
+ { "IndexedPropertyValuesContainer_get_implementation", IndexedPropertyValuesContainer_get_implementation },
+ { "com_sun_star_comp_uui_UUIInteractionHandler_get_implementation", com_sun_star_comp_uui_UUIInteractionHandler_get_implementation },
+ { "com_sun_star_i18n_Transliteration_get_implementation", com_sun_star_i18n_Transliteration_get_implementation },
+ { "com_sun_star_text_DefaultNumberingProvider_get_implementation", com_sun_star_text_DefaultNumberingProvider_get_implementation },
+ { "com_sun_star_comp_uri_UriReferenceFactory_get_implementation", com_sun_star_comp_uri_UriReferenceFactory_get_implementation},
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" void* SwCreateDialogFactory()
+{
+ return nullptr;
+}
+
+extern "C" bool TestImportWW2(SvStream &rStream);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportWW2(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/ww2fuzzer.options b/vcl/workben/ww2fuzzer.options
new file mode 100644
index 000000000..d851ad58c
--- /dev/null
+++ b/vcl/workben/ww2fuzzer.options
@@ -0,0 +1,4 @@
+[libfuzzer]
+max_len = 65536
+[env]
+AFL_DRIVER_DONT_DEFER=1
diff --git a/vcl/workben/ww6fuzzer.cxx b/vcl/workben/ww6fuzzer.cxx
new file mode 100644
index 000000000..56db11981
--- /dev/null
+++ b/vcl/workben/ww6fuzzer.cxx
@@ -0,0 +1,106 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+extern "C" {
+void * unoxml_component_getFactory( const char* , void* , void* );
+void * i18npool_component_getFactory( const char* , void* , void* );
+void * ucb_component_getFactory( const char* , void* , void* );
+void * emfio_component_getFactory( const char* , void* , void* );
+
+void * com_sun_star_comp_framework_Desktop_get_implementation( void *, void * );
+void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * );
+void * SfxDocumentMetaData_get_implementation( void *, void * );
+void * com_sun_star_i18n_CharacterClassification_Unicode_get_implementation( void *, void * );
+void * com_sun_star_i18n_CharacterClassification_get_implementation( void *, void * );
+void * com_sun_star_i18n_NativeNumberSupplier_get_implementation( void *, void * );
+void * com_sun_star_i18n_NumberFormatCodeMapper_get_implementation( void *, void * );
+void * com_sun_star_comp_graphic_GraphicProvider_get_implementation( void *, void * );
+void * IndexedPropertyValuesContainer_get_implementation( void *, void * );
+void * com_sun_star_comp_uui_UUIInteractionHandler_get_implementation( void *, void * );
+void * com_sun_star_comp_comphelper_OPropertyBag( void *, void * );
+void * com_sun_star_i18n_Transliteration_get_implementation( void *, void * );
+void * com_sun_star_text_DefaultNumberingProvider_get_implementation( void *, void * );
+void * com_sun_star_comp_uri_UriReferenceFactory_get_implementation( void *, void * );
+}
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { "libunoxmllo.a", unoxml_component_getFactory },
+ { "libi18npoollo.a", i18npool_component_getFactory },
+ { "libemfiolo.a", emfio_component_getFactory },
+ { "libucb1.a", ucb_component_getFactory },
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { "com_sun_star_comp_framework_Desktop_get_implementation", com_sun_star_comp_framework_Desktop_get_implementation },
+ { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation },
+ { "SfxDocumentMetaData_get_implementation", SfxDocumentMetaData_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation", com_sun_star_i18n_CharacterClassification_Unicode_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_get_implementation", com_sun_star_i18n_CharacterClassification_get_implementation },
+ { "com_sun_star_i18n_NativeNumberSupplier_get_implementation", com_sun_star_i18n_NativeNumberSupplier_get_implementation },
+ { "com_sun_star_i18n_NumberFormatCodeMapper_get_implementation", com_sun_star_i18n_NumberFormatCodeMapper_get_implementation },
+ { "com_sun_star_comp_graphic_GraphicProvider_get_implementation", com_sun_star_comp_graphic_GraphicProvider_get_implementation },
+ { "IndexedPropertyValuesContainer_get_implementation", IndexedPropertyValuesContainer_get_implementation },
+ { "com_sun_star_comp_uui_UUIInteractionHandler_get_implementation", com_sun_star_comp_uui_UUIInteractionHandler_get_implementation },
+ { "com_sun_star_comp_comphelper_OPropertyBag", com_sun_star_comp_comphelper_OPropertyBag },
+ { "com_sun_star_i18n_Transliteration_get_implementation", com_sun_star_i18n_Transliteration_get_implementation },
+ { "com_sun_star_text_DefaultNumberingProvider_get_implementation", com_sun_star_text_DefaultNumberingProvider_get_implementation },
+ { "com_sun_star_comp_uri_UriReferenceFactory_get_implementation", com_sun_star_comp_uri_UriReferenceFactory_get_implementation},
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" void* SwCreateDialogFactory()
+{
+ return nullptr;
+}
+
+extern "C" bool TestImportWW6(SvStream &rStream);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportWW6(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/ww6fuzzer.options b/vcl/workben/ww6fuzzer.options
new file mode 100644
index 000000000..d851ad58c
--- /dev/null
+++ b/vcl/workben/ww6fuzzer.options
@@ -0,0 +1,4 @@
+[libfuzzer]
+max_len = 65536
+[env]
+AFL_DRIVER_DONT_DEFER=1
diff --git a/vcl/workben/ww8fuzzer.cxx b/vcl/workben/ww8fuzzer.cxx
new file mode 100644
index 000000000..d8613afcd
--- /dev/null
+++ b/vcl/workben/ww8fuzzer.cxx
@@ -0,0 +1,106 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+extern "C" {
+void * unoxml_component_getFactory( const char* , void* , void* );
+void * i18npool_component_getFactory( const char* , void* , void* );
+void * ucb_component_getFactory( const char* , void* , void* );
+void * emfio_component_getFactory( const char* , void* , void* );
+
+void * com_sun_star_comp_framework_Desktop_get_implementation( void *, void * );
+void * com_sun_star_i18n_LocaleDataImpl_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_Unicode_get_implementation( void *, void * );
+void * com_sun_star_i18n_BreakIterator_get_implementation( void *, void * );
+void * SfxDocumentMetaData_get_implementation( void *, void * );
+void * com_sun_star_i18n_CharacterClassification_Unicode_get_implementation( void *, void * );
+void * com_sun_star_i18n_CharacterClassification_get_implementation( void *, void * );
+void * com_sun_star_i18n_NativeNumberSupplier_get_implementation( void *, void * );
+void * com_sun_star_i18n_NumberFormatCodeMapper_get_implementation( void *, void * );
+void * com_sun_star_comp_graphic_GraphicProvider_get_implementation( void *, void * );
+void * IndexedPropertyValuesContainer_get_implementation( void *, void * );
+void * com_sun_star_comp_uui_UUIInteractionHandler_get_implementation( void *, void * );
+void * com_sun_star_comp_comphelper_OPropertyBag( void *, void * );
+void * com_sun_star_i18n_Transliteration_get_implementation( void *, void * );
+void * com_sun_star_text_DefaultNumberingProvider_get_implementation( void *, void * );
+void * com_sun_star_comp_uri_UriReferenceFactory_get_implementation( void *, void * );
+}
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { "libunoxmllo.a", unoxml_component_getFactory },
+ { "libi18npoollo.a", i18npool_component_getFactory },
+ { "libemfiolo.a", emfio_component_getFactory },
+ { "libucb1.a", ucb_component_getFactory },
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { "com_sun_star_comp_framework_Desktop_get_implementation", com_sun_star_comp_framework_Desktop_get_implementation },
+ { "com_sun_star_i18n_LocaleDataImpl_get_implementation", com_sun_star_i18n_LocaleDataImpl_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_Unicode_get_implementation", com_sun_star_i18n_BreakIterator_Unicode_get_implementation },
+ { "com_sun_star_i18n_BreakIterator_get_implementation", com_sun_star_i18n_BreakIterator_get_implementation },
+ { "SfxDocumentMetaData_get_implementation", SfxDocumentMetaData_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_Unicode_get_implementation", com_sun_star_i18n_CharacterClassification_Unicode_get_implementation },
+ { "com_sun_star_i18n_CharacterClassification_get_implementation", com_sun_star_i18n_CharacterClassification_get_implementation },
+ { "com_sun_star_i18n_NativeNumberSupplier_get_implementation", com_sun_star_i18n_NativeNumberSupplier_get_implementation },
+ { "com_sun_star_i18n_NumberFormatCodeMapper_get_implementation", com_sun_star_i18n_NumberFormatCodeMapper_get_implementation },
+ { "com_sun_star_comp_graphic_GraphicProvider_get_implementation", com_sun_star_comp_graphic_GraphicProvider_get_implementation },
+ { "IndexedPropertyValuesContainer_get_implementation", IndexedPropertyValuesContainer_get_implementation },
+ { "com_sun_star_comp_uui_UUIInteractionHandler_get_implementation", com_sun_star_comp_uui_UUIInteractionHandler_get_implementation },
+ { "com_sun_star_comp_comphelper_OPropertyBag", com_sun_star_comp_comphelper_OPropertyBag },
+ { "com_sun_star_i18n_Transliteration_get_implementation", com_sun_star_i18n_Transliteration_get_implementation },
+ { "com_sun_star_text_DefaultNumberingProvider_get_implementation", com_sun_star_text_DefaultNumberingProvider_get_implementation },
+ { "com_sun_star_comp_uri_UriReferenceFactory_get_implementation", com_sun_star_comp_uri_UriReferenceFactory_get_implementation},
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" void* SwCreateDialogFactory()
+{
+ return nullptr;
+}
+
+extern "C" bool TestImportWW8(SvStream &rStream);
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportWW8(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/ww8fuzzer.options b/vcl/workben/ww8fuzzer.options
new file mode 100644
index 000000000..d851ad58c
--- /dev/null
+++ b/vcl/workben/ww8fuzzer.options
@@ -0,0 +1,4 @@
+[libfuzzer]
+max_len = 65536
+[env]
+AFL_DRIVER_DONT_DEFER=1
diff --git a/vcl/workben/xbmfuzzer.cxx b/vcl/workben/xbmfuzzer.cxx
new file mode 100644
index 000000000..bb261f60a
--- /dev/null
+++ b/vcl/workben/xbmfuzzer.cxx
@@ -0,0 +1,56 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <../source/filter/ixbm/xbmread.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ Graphic aGraphic;
+ (void)ImportXBM(aStream, aGraphic);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/xbmfuzzer.options b/vcl/workben/xbmfuzzer.options
new file mode 100644
index 000000000..678d526b1
--- /dev/null
+++ b/vcl/workben/xbmfuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 65536
diff --git a/vcl/workben/xlsfuzzer.cxx b/vcl/workben/xlsfuzzer.cxx
new file mode 100644
index 000000000..893110988
--- /dev/null
+++ b/vcl/workben/xlsfuzzer.cxx
@@ -0,0 +1,53 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include <com/sun/star/ucb/XContentProvider.hpp>
+#include <com/sun/star/ucb/XUniversalContentBroker.hpp>
+#include "commonfuzzer.hxx"
+
+extern "C" void* ScCreateDialogFactory() { return nullptr; }
+
+extern "C" bool TestImportXLS(SvStream& rStream);
+
+extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv)
+{
+ if (__lsan_disable)
+ __lsan_disable();
+
+ CommonInitialize(argc, argv);
+
+ // initialise unconfigured UCB:
+ css::uno::Reference<css::ucb::XUniversalContentBroker> xUcb(
+ comphelper::getProcessServiceFactory()->createInstance(
+ "com.sun.star.ucb.UniversalContentBroker"),
+ css::uno::UNO_QUERY_THROW);
+ css::uno::Sequence<css::uno::Any> aArgs(1);
+ aArgs[0] <<= OUString("NoConfig");
+ css::uno::Reference<css::ucb::XContentProvider> xFileProvider(
+ comphelper::getProcessServiceFactory()->createInstanceWithArguments(
+ "com.sun.star.ucb.FileContentProvider", aArgs),
+ css::uno::UNO_QUERY_THROW);
+ xUcb->registerContentProvider(xFileProvider, "file", true);
+
+ if (__lsan_enable)
+ __lsan_enable();
+
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportXLS(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/xlsfuzzer.options b/vcl/workben/xlsfuzzer.options
new file mode 100644
index 000000000..d851ad58c
--- /dev/null
+++ b/vcl/workben/xlsfuzzer.options
@@ -0,0 +1,4 @@
+[libfuzzer]
+max_len = 65536
+[env]
+AFL_DRIVER_DONT_DEFER=1
diff --git a/vcl/workben/xlsxfuzzer.cxx b/vcl/workben/xlsxfuzzer.cxx
new file mode 100644
index 000000000..a325bd69f
--- /dev/null
+++ b/vcl/workben/xlsxfuzzer.cxx
@@ -0,0 +1,31 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <vcl/FilterConfigItem.hxx>
+#include "commonfuzzer.hxx"
+
+extern "C" void* ScCreateDialogFactory() { return nullptr; }
+
+extern "C" bool TestImportXLSX(SvStream& rStream);
+
+extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ (void)TestImportXLSX(aStream);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/xlsxfuzzer.options b/vcl/workben/xlsxfuzzer.options
new file mode 100644
index 000000000..db9a3e8c6
--- /dev/null
+++ b/vcl/workben/xlsxfuzzer.options
@@ -0,0 +1,4 @@
+[libfuzzer]
+max_len = 98304
+[env]
+AFL_DRIVER_DONT_DEFER=1
diff --git a/vcl/workben/xpmfuzzer.cxx b/vcl/workben/xpmfuzzer.cxx
new file mode 100644
index 000000000..700761d17
--- /dev/null
+++ b/vcl/workben/xpmfuzzer.cxx
@@ -0,0 +1,56 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <tools/stream.hxx>
+#include <../source/filter/ixpm/xpmread.hxx>
+#include "commonfuzzer.hxx"
+
+#include <config_features.h>
+#include <osl/detail/component-mapping.h>
+
+const lib_to_factory_mapping *
+lo_get_factory_map(void)
+{
+ static lib_to_factory_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+const lib_to_constructor_mapping *
+lo_get_constructor_map(void)
+{
+ static lib_to_constructor_mapping map[] = {
+ { 0, 0 }
+ };
+
+ return map;
+}
+
+extern "C" void* lo_get_custom_widget_func(const char*)
+{
+ return nullptr;
+}
+
+extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+ TypicalFuzzerInitialize(argc, argv);
+ return 0;
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
+{
+ SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
+ Graphic aGraphic;
+ (void)ImportXPM(aStream, aGraphic);
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/xpmfuzzer.options b/vcl/workben/xpmfuzzer.options
new file mode 100644
index 000000000..678d526b1
--- /dev/null
+++ b/vcl/workben/xpmfuzzer.options
@@ -0,0 +1,2 @@
+[libfuzzer]
+max_len = 65536